Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查所有小写字母&;将单词与列表相结合-Haskell_Haskell - Fatal编程技术网

检查所有小写字母&;将单词与列表相结合-Haskell

检查所有小写字母&;将单词与列表相结合-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 =

我在编写两个单独的函数时遇到一些问题。其中一个“iswords”是接收一个单词,如果该单词的所有字符都是小写的,则返回“true”,否则返回“false”。以下是一个例子:

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。