- 68 名前:デフォルトの名無しさん mailto:sage [04/02/22 11:23]
- >>67
たぶん、 × [..n-1] [..(length xs)-n] ○ [0..n-1] [0..(length xs)-n] でしょう。 この場合、僕がはじめに作った関数同様、 無限配列で使えないので解としては、やや劣ると思われます。 それと、いちいち(!!)を使うのは効率上どうなんだろうか。 処理系なしで作ったのならしかたないか。 普段はlispを使っているようですね。 はじめにいれる処理系はhugsがおすすめ。 多少なじんできたら、がんばってghcをいれるといいかも。 >>66 いいね。 これもわりと感動もんかも。 単純な処理だと思っても以外と奥が深いもんだな。 以下は別に新しい考えかたは何もないですが、 上のほうで作っていた関数を見やすくしてみました。 p n xs = if drop (n-1) xs == [] then [] else take n xs : p n (tail xs) dropとtakeを両方使ってるあたりが泥臭いかも。 無限配列を扱えるもののなかで最も素直な解だと思う。どうかな。
|

|