トップページ > プログラム > 2015年01月11日 > xBHWy4LP

書き込み順位&時間帯一覧

13 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000110000000010014



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part27_©2ch.net

書き込みレス一覧

関数型プログラミング言語Haskell Part27_©2ch.net
18 :デフォルトの名無しさん[sage]:2015/01/11(日) 10:28:31.59 ID:xBHWy4LP
Prelude> let f n = last . takeWhile ((>=) n . sum) . foldl (\ ls a -> ls ++ [last ls ++ [a]]) [[]]
Prelude> f 7 [2,1,3,2,3]
[2,1,3]
Prelude> f 6 [2,1,3,2,3]
[2,1,3]
Prelude> f 1 [2,1,3,2,3]
[]
関数型プログラミング言語Haskell Part27_©2ch.net
19 :デフォルトの名無しさん[sage]:2015/01/11(日) 11:13:36.60 ID:xBHWy4LP
Prelude> class HaveSize a where size :: a -> Int
Prelude> instance HaveSize [a] where size = length
Prelude> let f n = length . last . takeWhile ((>=) n . sum) . scanl (\ ls a -> [a] ++ ls) []
Prelude> let saturate n xs = take (f n $ map size xs) xs

Prelude> saturate 7 ["aa", "b", "ccc", "dd", "eee"]
["aa","b","ccc"]
Prelude> saturate 6 ["aa", "b", "ccc", "dd", "eee"]
["aa","b","ccc"]
Prelude> saturate 1 ["aa", "b", "ccc", "dd", "eee"]
[]
関数型プログラミング言語Haskell Part27_©2ch.net
24 :デフォルトの名無しさん[sage]:2015/01/11(日) 20:31:52.09 ID:xBHWy4LP
ベンチありがとう
sumは漸化で扱うべきだというところまで
考えが至らなかったのはまだまだ修行が足りないな
関数型プログラミング言語Haskell Part27_©2ch.net
29 :デフォルトの名無しさん[]:2015/01/11(日) 23:09:31.16 ID:xBHWy4LP
これ
> 結果リストの各要素の大きさの合計も同時に得るに誰も挑戦しなかったのは、
> それによってコードが一気に複雑になるからですね。
自分で言われてるように、必要ないものを同時に考えたくないだけで省いた
> それは後から sum . map size でも得られるので無くてもかまいません。
説明が丁寧なのはいいのだけど、HaveSizeクラスの部分とかも
ちょっと問題が冗長だと感じました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。