2006-06-06から1日間の記事一覧

できたーヽ(´ー`)ノ

splitAt3' = flip((flip((flip(map) . flip(map) [take,drop] . flip($)))).flip($) ) *Main> :! type mysplit.hs splitAt' n = flip(map) (flip(map) [take,drop] ($ n)) . flip($) splitAt2' n = (flip(map) . flip(map) [take,drop] . flip($)) n.flip($)…

後一歩?

splitAt2' n = (flip(map) . flip(map) [take,drop] . flip($)) n.flip($) f::(i->(a->b)->c) 、g::(a->b) のとき f(n).g = k(n) となるようなk::(i->c) を作れればいいのかな・・・・・flip(f) g?? 型とにらめっこ。 *Main> :t (flip(map) . flip(map) [t…

xs追い出し成功・・なの?

Prelude> flip(map) (flip(map) [take,drop] ($ 3)) $ flip($) $ [1..5] [[1,2,3],[4,5]] Prelude> flip(map) (flip(map) [take,drop] ($ 3)) . flip($) $ [1..5] [[1,2,3],[4,5]]*Main> :! type mysplit.hs splitAt' n = flip(map) (flip(map) [take,drop] …

Pre機能テスト

Prelude> map ($ [1..5]) . map ($ 3) . map ($ (take,drop)) $ [fst,snd] [[1,2,3],[4,5]]真似して合成してみたけど[fst,snd]が外に出ちゃった。意味無い。

http://haskell.g.hatena.ne.jp/hyuki/20060605/splitat疑問のところについて考えてみる。 最初に思いついた形 zipWith (\f x -> f x) (zipWith (\f x -> f x) [take,drop] (replicate 2 n)) (replicate 2 xs) 関数適用は$だね zipWith ($) (zipWith ($) [ta…

おまけ(´ー`)

(take,drop)の形から([a],[a])の形を返すように微調整したバージョン splitAt5' = curry((\[x,y]->(x,y)).(uncurry (flip((flip((flip(map) . flip(map) (map($ take,drop)) [fst,snd]) . flip($)))).flip($))))) 実行結果 *Main> :! type mysplit.hs splitA…