gpt4 book ai didi

haskell - 我似乎无法在 haskell 中设置字符的值?

转载 作者:行者123 更新时间:2023-12-03 20:37:19 25 4
gpt4 key购买 nike

我正在学习haskell并且在理解它时遇到了一些麻烦。基本上,我有一个程序可以读入一个字母,如果它是“!”的辅音,则将其更改,但是我似乎无法设置字符的值..

到目前为止,这是我的代码..

isConsonant :: Char -> Bool
consonant_alphabet = ['b'..'d']++['f'..'h']++['j'..'n']++['p'..'t']++['v'..'z'] ++ ['B'..'D']++['F'..'H']++['J'..'N']++['P'..'T']++['V'..'Z']
isConsonant character = character `elem` consonant_alphabet

repConsonant :: Char -> String
repConsonant c =
if isConsonant c
then "CONVERT IT TO !"
else do "NO CONVERSION REQUIRED"

我将它作为用于调试目的的字符串输出,但我无法弄清楚这个......有什么想法吗?我试过做
let c = "!"

最佳答案

考虑一下您要进行的转换与您要进行多少次的转换。 repConsonant 应该是 Char -> Char

repConsonant :: Char -> Char
repConsonant c =
if isConsonant c
then '!'
else c

现在 repConsonant 应该对字符执行您想要的操作,您需要做的就是将其应用于字符串中的每个字符。

I can't seem to set the value of the character.



是的,您只能为名称分配一次值。这是设计使然。它应该将您的程序设计引导到更小的函数,将输入转换为输出的编程风格。如果需要在函数内构建值,则需要“let in”或“where”语法。
let addone a = let b = 1 in a + b

或者
let addtwo a = a + b
where b = 2

关于haskell - 我似乎无法在 haskell 中设置字符的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19319483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com