[英]HASKELL Function nextLetter of alphabet
我必须在HASKELL中编写一个函数,其名称为siguienteLetra,它接受一个变量,这个变量是一个字母表,然后返回下一个字母。 我怎样才能做到这一点?
例如:siguienteLetra'a'和函数返回'b'或siguienteLetra'c',函数返回'd'
Data.Char
这两个函数将很有用:
ord :: Char -> Int
chr :: Int -> Char
第一个将字符转换为其数字表示(例如'a'→97,'b'→98),而另一个进行反向转换(97→'a',98→'b')。 以合理的方式使用这些函数将允许您实现siguienteLetra
。
你需要第三个功能,除了ord
和chr
,它应该做什么? 第三个函数在Prelude
,但可能很难猜出它的名字(取决于你的背景)。 幸运的是,该功能非常简单,您可以轻松自己编写。
什么应该是siguienteLetra
的签名? 查看三个函数( ord
, chr
和第三个函数)的签名,并考虑它们应该组合的顺序。
博洛感谢你的帮助,结果就是这样。
module Ejercicio1 where
import Data.Char
import Data.Ord()
siguienteLetra :: Char -> Char -- you should not put pure computations
-- in the IO Monad!
siguienteLetra y = chr z
where x = ord y
z = x+1
ejercicio1 :: IO ()
ejercicio1 = do
y <- getChar
print $ siguienteLetra y
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.