检查所有小写字母&;将单词与列表相结合-Haskell
我在编写两个单独的函数时遇到一些问题。其中一个“iswords”是接收一个单词,如果该单词的所有字符都是小写的,则返回“true”,否则返回“false”。以下是一个例子:检查所有小写字母&;将单词与列表相结合-Haskell,haskell,Haskell,我在编写两个单独的函数时遇到一些问题。其中一个“iswords”是接收一个单词,如果该单词的所有字符都是小写的,则返回“true”,否则返回“false”。以下是一个例子: isWord "foo" = True; isWord "fo3o" = False prefixWords "word:" ["aa", "a3", "foo"] = ["word:aa", "word:foo"] 它必须使用以下定义: isWord :: String -> Bool isWord s =
isWord "foo" = True; isWord "fo3o" = False
prefixWords "word:" ["aa", "a3", "foo"] = ["word:aa", "word:foo"]
它必须使用以下定义:
isWord :: String -> Bool
isWord s =
prefixWords :: String -> [String] -> [String]
prefixWords str strs =
另一个函数“prefixWords str strs”,它接受一个单词和一个单词列表,并将这两个单词组合在一个列表中,每个单词之间有一个“:”。以下为示例:
isWord "foo" = True; isWord "fo3o" = False
prefixWords "word:" ["aa", "a3", "foo"] = ["word:aa", "word:foo"]
它必须使用以下定义:
isWord :: String -> Bool
isWord s =
prefixWords :: String -> [String] -> [String]
prefixWords str strs =
非常感谢您的帮助,因为我对Haskell是全新的,不知道从哪里开始。谢谢 因为这显然是家庭作业,我不会给你答案,只是轻轻推一下 首先,
String
只是[Char]
的同义词
这些功能可能有帮助:
(++) :: [a] -> [a] -> [a]
这将连接两个列表或字符串
import Data.Char
isLower :: Char -> Bool
这将测试字符是否为小写
all :: (a -> Bool) -> [a] -> Bool
这将测试列表中的所有元素是否都满足谓词
map :: (a -> b) -> [a] -> [b]
这将函数应用于列表的所有元素
对于函数isWord
,您需要检查字符串的所有元素是否都是isLower
对于函数前缀词
,每个元素都与给定的字符串连接。您需要函数和。是的,这是我忘记提到的一件事。我们可以使用all、map和filter。