【发布时间】:2013-04-19 09:41:48
【问题描述】:
您好,我是 Haskell 初学者,我真的很迷茫。 这是我的任务,它要求我使用更高阶函数执行以下操作
Main> mySort (<) [1,5,3,6,4,1,3,3,2]
[1,1,2,3,3,3,4,5,6]
Main> mySort (>) [1,5,3,6,4,1,3,3,2]
[6,5,4,3,3,3,2,1,1]
Main> mySort longerWord [“Hello”, “The”, “a”, “Daniel”, “Declarative”]
[“Declarative”, “Daniel”, “Hello”, “The”, “a”]
首先,我想我应该做一个函数来区分它是 还是 longWord
checkConditionStr::String->Int
checkConditionStr str
|str=="(<)" =1
|str=="(>)" =2
|str=="longerWord" =3
但该示例没有引号(即 mysort (
checkCondition::Ordering->Int
checkCondition ord
|ord==(<) =1
|ord==(>) =2
|otherwise =2
其次,我仍然难以理解高阶函数。这有意义吗?
mySort::(String->Int)->[a]->[a]
mySort i list
|i==1 map (sortBy compare) list
|i==2 map (sortBy(flip compare)) list
【问题讨论】:
标签: sorting haskell higher-order-functions