我在为Haskell做练习问题,问题之一是
test3 x y = x (x y)
Run Code Online (Sandbox Code Playgroud)
为此,我必须找到类型。
解决方法是
test3 :: (a -> a) -> a -> a
Run Code Online (Sandbox Code Playgroud)
我不明白为什么解决方案中的变量都是a,而不是将x和y称为两个不同的变量,例如a和b。有人可以解释一下,还可以找到如何找到此问题的类型。
我正在练习评估let表达式的练习问题,但我不理解该表达式的输出。
这是表达式:
let a = 2
b = 1:[i * 2 | i <- b]
f a = 1:[i * a | i <- (f a)]
in take (a+2) (f (head (tail b) ))
Run Code Online (Sandbox Code Playgroud)
输出应该是[1,2,4,8]。有人可以一步一步解释为什么这是输出