関数型プログラミング言語Haskell Part13
■ このスレッドは過去ログ倉庫に格納されています
0781デフォルトの名無しさん
2011/02/07(月) 20:19:44foldではマッチ後も余分な計算が発生するので
次のような関数を考えたのですが
既に用意されてる関数を組み合わせてこういうの出来ないでしょうか
(言い換えると、List.anyで最初にtrueになった要素に処理したい)
--空リストがあるので、結果は仕方なく1要素からなるリスト
dofirst :: (t -> Bool) -> (t -> a) -> [t] -> [a]
dofirst pred f lst = case lst of
[] -> []
x:xs -> if pred x then
[f x]
else
dofirst pred f xs
result=dofirst (==20) (*2) [1..]
■ このスレッドは過去ログ倉庫に格納されています