检查全部小写&将Word与List结合使用 - Haskell

时间:2015-09-16 22:48:17

标签: haskell

我在编写2个单独的函数时遇到了一些麻烦。其中一个“isWord s”是接受一个单词并且如果单词的所有字符都是小写则返回“true”,否则返回“false”。以下是一个例子:

isWord "foo" = True; isWord "fo3o" = False

必须使用此定义:

isWord :: String -> Bool
isWord s = 

另一个函数“prefixWords str strs”,它接受一个单词和一个单词列表,并将两个单词组合在一个列表中,每个单词之间带有一个“:”。以下显示为例:

prefixWords "word:" ["aa", "a3", "foo"] = ["word:aa", "word:foo"]

必须使用此定义:

prefixWords :: String -> [String] -> [String]
prefixWords str strs =

我非常感谢任何帮助,因为我是Haskell的新手,并且不知道从哪里开始。谢谢!

1 个答案:

答案 0 :(得分:1)

由于这显然是家庭作业,我不会给你答案,只是一个大的轻推。

首先,String只是[Char]的同义词。

这些功能可能会有所帮助:

(++) :: [a] -> [a] -> [a]

这将连接两个列表或字符串。

import Data.Char
isLower :: Char -> Bool

这将测试Char是否为小写

all :: (a -> Bool) -> [a] -> Bool

这将测试所有列表元素是否满足谓词。

map :: (a -> b) -> [a] -> [b]

这将函数应用于列表的所有元素。

对于您的函数isWord,您需要检查字符串元素的all是否为isLower

对于函数prefixWords,每个元素都与给定的字符串连接。