繁体   English   中英

HASKELL函数next字母表

[英]HASKELL Function nextLetter of alphabet

我必须在HASKELL中编写一个函数,其名称为siguienteLetra,它接受一个变量,这个变量是一个字母表,然后返回下一个字母。 我怎样才能做到这一点?

例如:siguienteLetra'a'和函数返回'b'或siguienteLetra'c',函数返回'd'

提示1

Data.Char这两个函数将很有用:

ord :: Char -> Int
chr :: Int -> Char

第一个将字符转换为其数字表示(例如'a'→97,'b'→98),而另一个进行反向转换(97→'a',98→'b')。 以合理的方式使用这些函数将允许您实现siguienteLetra

提示2

你需要第三个功能,除了ordchr ,它应该做什么? 第三个函数在Prelude ,但可能很难猜出它的名字(取决于你的背景)。 幸运的是,该功能非常简单,您可以轻松自己编写。

提示3

什么应该是siguienteLetra的签名? 查看三个函数( ordchr和第三个函数)的签名,并考虑它们应该组合的顺序。

博洛感谢你的帮助,结果就是这样。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM