ズッキーニのプログラミング実験場

プログラミング + アカデミック + 何か面白いこと。 記載されているものは基本的に私が所属する団体とは関係がありません。

   Jul 04

[Haskell]バナナスプリット則 part1

by zuqqhi2 at 2013年7月4日
Pocket

やりたいこと

以下のバナナスプリット則の例を実装したい。

・(|f|),(|g|)・=(|・f”F(π1),g”F(π2)・|)

スクリプト

Haskellでfoldrの結果をタプルで出力させるための文法が分からなくて、
Google先生も教えてくれなかったので今日は断念した。

あとは、以下のAfterの部分を1つのfoldrにまとめることができればバナナストリップ則の具体例の実装が出来る。

-- Before
sum' = foldr (\x xs -> x + xs) 0
length' = foldr (\x n -> 1 + n) 0
average ls = sum' ls / length' ls

-- After
average' ls = s / l
    where
        (s, l) = ((foldr (\x xs -> x + xs) 0) ls, (foldr (\x n -> 1 + n) 0) ls)

実行結果

途中経過だけど実行してみる。

$ghci
Prelude> :load banana-strip.hs
Main> average' [1,2,3,4,5]
3.0

Related Posts

  • 2013年7月25日 [Haskell]最小不動点 Haskell 最小不動点 を試してみるメモ
  • 2013年7月11日 [Haskell]反転画像の生成 やりたいこと 前回まででPGM形式の画像の出力、読み込みができるようになったから、 今度は画像処理をやってみる。 今回は一番簡単な、反転画像を作る。 プログラム だいたいこんな感じ。 […]
  • 2013年7月13日 [Haskell]画像処理 水平方向のエッジ やりたいこと 水平方向の微分で水平方向のエッジ画像を出力する。 プログラム プログラムはこんな感じ。 結果 入力画像 出力画像 Target Output horizontal edge image. Program […]
  • 2014年12月14日 [Haskell][XML][CompleteSuggestionAPI]HaskellでGoogle Complete Suggestion APIのXML形式の戻り値をパースする Target HaskellでGoogle Complete Suggestion APIの結果(XML)をパージングして、候補クエリの配列(の形をした文字列)を取得する。 Environment OSLinux […]
  • 2013年7月7日 [Haskell]PGMファイルを生成する part3 やりたいこと 昨日まででランダムな配列を作成することが出来るようになったから、 出力の形式を整えてPGMファイルを生成する。 プログラム foldrを使ってこんな感じで書いてみた。 実行するとこんな感じの内容のファイルができる。 […]
  • 2013年7月9日 [Haskell]PGMファイルを読み込む part2 やりたいこと 昨日まででヘッダーは読み込めるようになったため、 今度はピクセルの情報を読みだす。 プログラム プログラムは以下の感じ。 入力画像 出力画像 うまくいっているみたいだ。 What I want to […]
Pocket

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.