【发布时间】:2015-05-11 18:09:35
【问题描述】:
我是 haskell 的新手,希望您对以下 haskell 表达式求值提出建议。
f xs = foldr (\x n->n+1) 0 xs
功能
f [1, 4]
评估
(\x n->n+1) 1 (foldr (\x n->n+1) 0 [4])
= (foldr (\x n->n+1) 0 [4]) + 1
= ((\x n->n+1) 4 (foldr (\x n->n+1) 0 [4])) + 1
= (foldr (\x n->n+1) 0 [] + 1) + 1
= (0 + 1) + 1
= 1 + 1
= 2
【问题讨论】:
-
代码有问题吗?
-
@thefourtheye 代码工作正常,但我不确定这一行是否 '((\x n->n+1) 4 (foldr (\x n->n+1) 0 [4 ])) + 1' 是正确的,或者应该是 '((\x n->n+1) 4 (foldr (\x n->n+1) 0 [])) + 1'
-
请编辑问题并清楚说明您的意图。
-
我只想知道我的评价是否正确,如果不正确,请告诉我哪里错了。
标签: haskell evaluation