タグ

ProgrammingとFunctionalに関するagwのブックマーク (8)

  • 猫でも杓子でもわかる Functor in C++0x - ろじかるんるんものがたり

    関手というのがどうもよくわからず。 ということなので、釣り記事を書こうと思います。 Haskell とか使ってる人って、これぐらい全部わかってるイメージがありますし、矢張り釣り針は大きいほうがいいので、C++ で説明してみようと思います。C++ の関数型表記だとちょっとイマイチなので C++0x を使います。 ガンガン嘘をつくので突っ込んでください。 関手というのは、めちゃくちゃ簡単にいうと「圏をとり圏を返す関数」です。あっ、みなさんが大好きな圏がしょっぱなから出てきましたね!モナドなう〜。 でも圏、カテゴリってなんだろう? 圏というのは、一言でいうと「対象とその射からなる構造」です*1。 対象、射って何だろう?ということなんですけど… 突然ですが bool ってご存知ですか?勿論そりゃご存知でしょうけれども、少し説明してみます。 C++ には bool という型があって、この型の値として

    猫でも杓子でもわかる Functor in C++0x - ろじかるんるんものがたり
  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

  • notes/tenreasons/index.md at master · yukitos/notes

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    notes/tenreasons/index.md at master · yukitos/notes
  • 命令プログラミングから関数プログラミングへ

    15.7.11 HiRoshima.R #4 Lightning Talks @imyuaotiの発表資料です。 ※注意※(2015.7.19追記) Rでは処理速度が遅いという理由で for関数の使用は避けるべきと考えられています。 来は,処理を高速化をしたい場合,以下をうまく活用してください。 ・apply関数 ・foreachパッケージ,pforeachパッケージ 【参考資料】 「勝手に添削:for関数を使った繰り返し処理によるヒストグラムの一括出力 #rstatsj」 http://qiita.com/hoxo_m/items/5127c31f3eafd6be7428 (hoxo_mさんにスライドの内容を添削してもらいました!) 「for を捨てよ、foreach を書こう」 http://www.slideshare.net/hoxo_m/for-foreach 「R で超簡単

    命令プログラミングから関数プログラミングへ
  • [Q&A]関数型プログラミング言語、よくある疑問

    そもそも「関数」とは? 関数ならC言語にもあるのでは 関数型でいう「関数」とは、C言語における関数やC++/Javaでいうメソッドとは微妙に異なる。関数型における「関数」とは、その出力が入力だけで一意に決まるものを指す。一方、C言語など一般的なプログラミング言語では、関数の出力は必ずしも入力だけでは決まらない。関数の内部にある変数の値、システム全体の状態などによって、同じ入力を与えたとしても出力は変わってしまうものが多い。結果として、関数の動作は複雑になり、コードの可読性も悪化、テストもしにくくなる。 関数型でいう「関数」は、プログラムをよりシンプルにする仕組みであり、関数型プログラミング言語では、この「関数」を主体にしたプログラミング・スタイルを支援する仕組みが備わっている(関連記事)。手続き型のプログラミング言語でも、状態などを入力に含めて記述すれば、関数型でいう「関数」と等しくなる。

    [Q&A]関数型プログラミング言語、よくある疑問
  • Shibu's Diary: 関数型言語を広めるためには何が必要なのか?

    By plushoff under CC BY-NC 山口さんから、「Java開発者のための関数プログラミング」の電子献をいただきました。ありがとうございます。電子書籍便利ですね。アメリカにいても日語のが手に入る!しかも、すごいこなれた日語になっているし、注釈もばっちりついて読みやすいです。仕事のできる男の風格を感じます。 人のブログ: http://ymotongpoo.hatenablog.com/entry/20120621/1340233739 オライリーの書籍ページ: http://www.oreilly.co.jp/books/9784873115405/ このを楽しく読んでいたところ、山口さんから別の面白いリンクを教えてもらいました。 Why OO Sucks (なぜオブジェクト指向はクソなのか) Erlangの開発者のJoe Armstrongの記事です。当は

  • Functional Javascript

    Functional is a library for functional programming in JavaScript. It defines the standard higher-order functions such as map, reduce (aka foldl), and select (aka filter). It also defines functions such as curry, rcurry, and partial for partial function application; and compose, guard, and until for function-level programming. And all these functions accept strings, such as 'x -> x+1', 'x+1', or '+

  • Kanasan.JS(prototype.js 読書会)に参加した - てっく煮ブログ

    JavaScript, event関西で JavaScript 勉強会を、ということで企画された Kanasan.JS に参加してきました。細かなレポートは各所に上がってるので、今更まとめる必要はなさそうです。技術的なアレコレに関しては、以下の3つのエントリがよくできてます。Greenbear Diary - Kanasan.JS (別名:prototype.jsのソースにツッコミを入れるオフ) に参加してきましたちょっとKanasan.JSまでいってきました - はこべにっき#Kanasan.JS レポート: Days on the Moonその他のレポートは、主催者のエントリ「Kanasan.JS無事終了しました (Kanasansoft Web Lab.)」のトラックバックから辿れるので、そちらを参考に。K-conbinatorPrototype.K 関数についてだけ補足しておこう。

    agw
    agw 2012/03/03
    IコンビネータとKコンビネータ。
  • 1