- 関数型プログラミング言語Haskell Part27_©2ch.net
31 :デフォルトの名無しさん[sage]:2015/01/12(月) 00:23:49.94 ID:YuUyOY1J - 再帰とかよりも宣言的であることが大事だったってことじゃない?
今回の場合は inits を使うようなやり方だと宣言的になりやすいと思う。 import Data.List (inits) saturate n xs = last $ takeWhile ((<= n) . sum . map size) $ inits xs でも inits を使うと O(n^2) になってしまう。 map reverse $ inits xs なら O(n) で作れるけど、少し煩雑になる。 他は>>15や>>20と同じようなことになってあまり宣言的じゃなくなると思う。
|
|