関数型プログラミング言語Haskell Part27_©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0020デフォルトの名無しさん
2015/01/11(日) 12:49:54.72ID:kRBMF/fRリストに対する明示的な再帰が嫌なら
saturate = flip $ foldr (\x t n -> if n < size x then [] else x : t (n - size x)) (const [])
saturate n xs = map snd $ takeWhile ((<= n) . fst) $ zip (scanl1 (+) (map size xs)) xs
あたりが素直なんじゃないかな。
■ このスレッドは過去ログ倉庫に格納されています