我必须展示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
我是对的吗?我看不到另一种方法来解决它..但应该有一个......?
(抱歉英语不好)..
感谢您的帮助。
答案 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