結城浩のHaskell日記にコメントをつけようとしたら,グループに参加しろと(はてなが)言うので参加してみた。
せっかくなので Haskellリング にも参加。
みなさん,よろしくお願いします。
takatoh's blog – Learning programming languages.
結城浩のHaskell日記にコメントをつけようとしたら,グループに参加しろと(はてなが)言うので参加してみた。
せっかくなので Haskellリング にも参加。
みなさん,よろしくお願いします。
下のエントリは前段でこっちが本題。id:hyukiさんとこにコメントをつけたんだけど,忘れないようにこっちにも書いておく。
filter' f xs = foldr (\m n -> if f m then m:n else n) [] xs
結果。
*Main> take 50 $ filter' odd [1..] [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55, 57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99]
リスト中に,関数 f(述語って言うの?)を満たす要素のほうが多ければ True をかえす,というのを考えた。all と any の中間みたいなもの。
major f xs = (length $ filter f xs) > (length $ filter (not . f) xs)
結果。
*Main> major odd [1..5] True *Main> major even [1..5] False
地道に数を数えるならこうかな。
major f xs = fst count > snd count where count = foldl (\(ct, cf) x -> if f x then (ct+1, cf) else (ct, cf+1)) (0,0) xs
*Main> major odd [1..5] True *Main> major even [1..5] False
id:takatoh:20060604:group についた hyuki さんのコメント。
参加ありがとうございます。ところで、コメントつけるときに「グループに参加」というのはどういう状況でしたか?いちおう誰で も書き込めるようになっていたはずですが…。
たぶん,はてなにログインした状態でコメントしようとしたので,グループに参加するよう促されたのではないかと思います。回避する方法があったのかもしれませんが,別段,断る理由もなかったのでそのまま参加しました。
ところが。
つけたコメントの,名前の部分がリンクになってるんですが,そのリンク先がここじゃなくて Haskellグループ内の日記(使ってないのでカラ)になってしまってます。これはどうしたらいいんだろう。時間があいたら調べてみます。