関数型言語Part2
■ このスレッドは過去ログ倉庫に格納されています
0518デフォルトの名無しさん
NGNGSchemeでcurry化って概念はあるのでしょうか?
たとえば、リストの先頭要素とそれ以降のリストの要素の大小を比較し、
小さい要素だけのリストを返す関数を、Schemeのfilter関数(非標準?)を
用いて実現したいわけです。
ちなみに、Haskellなら以下のようになります。
lessThan :: (Num a, Ord a) => a -> a -> Bool
lessThan a b
| a > b = True
| otherwise = False
lessList :: (Num a, Ord a) => [a] -> [a]
lessList ls = filter (lessThan (head ls)) ls
これをSchemeで書くとき、filter関数の(a -> Bool)部分をどう書けば
美しくまとめることができるのか、少々悩んでいます。
filter関数を使わなければ簡単なんですけど、どうせなら使いたい。
■ このスレッドは過去ログ倉庫に格納されています