最左边和最外面(Haskell)

时间:2013-12-03 16:16:48

标签: haskell

我必须展示Haskell需要计算多少步骤(两种方式 - 最左边最里面和最左边最外面)。这是函数

minimum [7,4,2,8]

最小值定义为

minimum xs = head (isort xs)

所以最里面的(?)步骤是:

1. minimum [7,4,2,8]
2. head (isort [7,4,2,8])
3. head (isort [4,7,2,8])
4. head (isort [2,4,7,8])
5. head [2:4:7:8]
6. (The output) => 2

我是对的吗?我看不到另一种方法来解决它..但应该有一个......?

(抱歉英语不好)..

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

你(可能)忘了

4.   head (isort [2,4,7,8])
4.1  head (2 : isort [4,7,8])
4.2  head (2 : 4 : isort [7,8])
4.3  head (2 : 4 : 7 : isort [8])
4.4  head (2 : 4 : 7 : 8 : isort [])
4.4  head (2 : 4 : 7 : 8 : [])
(only now is head's argument a value)
5.   2

通过最外层的评估

4.   head (isort [2,4,7,8])
4.1  head (2 : isort [4,7,8])
5    2