正在阅读有关monad的教程并坚持以下内容:
let m = return 2 :: IO Int
Run Code Online (Sandbox Code Playgroud)
这是可以理解的 - 我们在monadic变量(IO 2)中打包2但是以下是什么意思?
m >>= return
Run Code Online (Sandbox Code Playgroud)
它输出2.
正如我从Monad定义中所知,返回总是只接受一个参数.但是,这里的争论不存在.如何理解?
我想创建一个函数,从int的列表返回每个第三个int而不使用任何预定义的函数.例如,everyThird [1,2,3,4,5] --> [1,4]
everyThird:: [a] -> [a]
Run Code Online (Sandbox Code Playgroud)
我可以继续使用tail迭代列表并每隔三次调用追加到一个新列表吗?我是Haskell的新手并且对所有这些感到非常困惑
我找到了一些代码
data Tree c a = Node String [Tree c a]
| NodeWithCleanup c [Tree c a]
| Leaf a
Run Code Online (Sandbox Code Playgroud)
我不明白为什么有必要添加[Tree c a].我不知道这个语法,你能解释一下吗?
例如,我在输入中有一个字符串:"aaa bbb ccc dddd",我的函数给了我
["aaa", "bbb", "ccc", "dddd"]
Run Code Online (Sandbox Code Playgroud)
要么
("aaa", "bbb", "ccc", "dddd")
Run Code Online (Sandbox Code Playgroud)
有可能吗?
我想计算Haskell中列表中元素的出现次数,但是有一个错误,我不知道为什么.
count:: Int -> [Int] -> Int
count n []= 0
count n (h:t) | (n `elem` (h:t)) =1+ count (n t)
| otherwise = count(n t)
Run Code Online (Sandbox Code Playgroud) 标题说我只需要添加一个.在我的字符串中的每个字母之前删除元音并使其小写我得到它工作只是不能添加.s这里是我的代码
s = str(input())
vowels = ('a','e','o','u','i','A','E','O','U','I')
for letter in s:
if letter in vowels:
s = s.replace(letter,'').replace()
print(s)
Run Code Online (Sandbox Code Playgroud) 我必须编写一个函数,该函数使用结果一个参数True过滤,然后使用结果另一个参数过滤False
我尝试了这个:
selectUnless :: (t -> Bool) -> (t -> Bool) -> [t] -> [t]
selectUnless fx gx (x:xs) = filter gx (filter fx (x:xs))
Run Code Online (Sandbox Code Playgroud)
但是我需要“ not gx”所在的列表。
例如:
selectUnless (>= 2) (==2) [1,2,3,4] == [3,4]
selectUnless even odd [1..50] == [2,4..50]
Run Code Online (Sandbox Code Playgroud) 这是我最近面临的编程挑战。
您得到的数字小于1000,您需要确定求和到给定数字的素数最少为多少。
例子:
Run Code Online (Sandbox Code Playgroud)12: 2 (since 12=7+5) 14: 2 (since 14 = 7+7)如果不可能将给定的数字分解为素数之和,则返回-1。
以下是一些测试用例:
Run Code Online (Sandbox Code Playgroud)88:2 117:3 374:2 363:3 11:1
我正在了解Haskell中的函子,我想知道QuickCheck是否Gen是的实例Functor?任何见解都表示赞赏。
>>> from operator import itemgetter
>>> a = [(5, 3), (1, 3), (1, 2), (2, -1), (4, 9)]
>>> sorted(a, key=itemgetter(0))
[(1, 3), (1, 2), (2, -1), (4, 9), (5, 3)]
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?key 也是一个函数吗?我对 key=itemgetter(0) 背后的内容感到困惑?如果有人可以一步一步解释