この記事はドワンゴ Advent Calendar 2014の14日目です。 ちなみに前日は@erukitiさんでした。 他の方は「こんなもの作ってみた!」系の記事が多いのですが、技術系の話題であれば特に縛りはないようなので、今回はひたすら文章をつらつらと綴っていきたいと思います。 ここ数年、「マルチコア時代の主流は関数型だ」とか「Javaはもう古い! 時代は関数型!」といった記事をよく見かけるようになった気がします。 大学でOCamlを学んできた自分としては嬉しい限りなのですが、なんだか関数型という言葉がバズワード的な使われ方をしている気がして、まるで「現在起こっている全ての問題を解決する銀の矢だ!」といわんばかりの雰囲気を感じるのが気になっています。 最近うちの部署でもにわかに「関数型っぽく書こう」みたいな機運が高まってることもあるので、この機に関数型プログラミングとはなにか、どのよう
是非手に取ってみて下さい.よろしくおねがいします. 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る AgdaとかHaskell Golfの本ではない.いいね? どのような本? これまで何らかの命令型言語に触れてきた人が「なにかと耳にするし,そろそろ関数プログラミングでも」と思いたったとき,その基本的な部分を押さえるための本です.関数型言語としてはHaskellをとりあげ,またHaskellを使っていくための説明を進めていきます.関数プログラミングからプログラミングに入る人はプログラミングに対する先入観が無いのでともかくとして,既に命令型言語の経験がある人の場合,関数プログラミングの考え
ホントはこわくない関数型言語 〜関数型言語の学び方〜 関数型言語が気になるけど難しそう。そんなふうに思ってる人は多いと思います。 ここでは初心者に毛が生えた程度の自分が感じる関数型言語を使うメリットを説明したいと思います。 関数型言語の嬉しいポイント ぬるぽがなくなる 「意識してれば」という条件付きですが、null参照が発生することはなくなります。 通常「値がない」ことを表現するためにnullを使用することが多いと思いますが、注意深くコーディングしないとすぐにnull参照してしまいます。 そもそも「値がない」ことを示すのにnullを便宜的に代用しているのが問題なのです。 ならば「値がない」ことを特別な方法によって表現できればより「値がない」ことを意識してプログラミングできると思いませんか。 関数型言語はoption型とパターンマッチによってこの問題を解決します。 パターンマッチ パターンマ
Ruby,Lisp,Emacs,Clojure.OCaml,Haskell,Raspberry Piのメモ プログラミングの基礎 (Computer Science Library) を読んだ。 SICPに関連するブログ徘徊していたら、あちこちでお勧めされていた書籍。 冬休み+αを利用して、一通り演習問題を解きつつ、読了。 最近読んだプログラミングの本の中では、一番楽しかった。 本書をきちんと読んでいれば、演習問題も簡単で、すいすい読み進める。 もっと早くこの本を読んでおけば良かった。 本書では、一冊を通して、メトロネットワーク最短経路問題を解くプログラムを作り、 その過程で、以下の内容が学べる(目次から抜粋)。 基本的なデータ 変数 関数 条件分岐 エラー 組 パターンマッチ レコード リスト 再帰処理 ダイクストラのアルゴリズム(最短経路を求めるためのアルゴリズム) 高階関数 再帰の停
基本的に関数型言語もScalaもJVM言語も初心者なのでその前提で書かせていただきます。 Scala興味なくても関数型と並列に興味がある人なら必要最低限の情報がうまく俯瞰できるようになっていて非常にいいです。関数型プログラミングの基本概念の副作用、単一代入、参照透明性、カリー化、部分適用、遅延評価、クロージャー、再帰、周りが丁寧に解説されています。アクタープログラミングとパーサーコンビネーターのところもまとまっていてわかりやすかったです。 ただ、タイトルのつけ方で若干損をしている感じはした。 関数型やScalaやりたいんだけど若干敷居高いなと感じてる初心者にはおすすめかと思います。 オブジェクト指向プログラマが次に読む本 ?Scalaで学ぶ関数脳入門 作者: 株式会社テクノロジックアート,長瀬嘉秀,町田修一出版社/メーカー: 技術評論社発売日: 2010/11/13メディア: 単行本(ソフ
リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態が変化するようなシステムを宣言的に記述することができます。 これらの「変化する状態」や「外部とのやりとり」が支配的なシステムは、純粋関数型言語が、その強みを発揮しにくい部分でもあります。 本稿では、リアクティブプログラミングが副作用を含む系を宣言的に記述することを可能にし、状態の管理という厄介な問題からプログラマを開放する可能性があることを示したいと思います。 (割と独自研究に基づく解釈ばかりなのでその点ご了承ください。あと例としてでてくるコードは、Pythonベースの擬似コードで具体的なライブラリに基づくものではありません。) Why Reactiv
CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =
1 Haskell 2013.5.24 2 3 1988 B4 Sun 1992 4 Unix Magazine Unix Magazine UNIX RFC FYI (For Your Information) 5 IP PEM (Privacy Enhanced Mail) WIDE Project mh-e PEM 6 7 Unix Magazine PGP PGP 1 8 Mew (MIME) Mew Emacs Emacs XEmacs 9 Emacs Mew off Mew Emacs read-passwd gnu.org 10 IIJ KAME IIJ 11 KAME KAME WIDE BSD IPv6 IPsec Mobile IPv6 IIJ NEC BSD IPv6 IPsec Mobile IPv6 Mac IPv6 KAME 12 IETF Internet E
みなさま、ご無沙汰しております。1ヶ月以上ぶりのブログ更新となりました。Python界の情弱こと山口です。 この度、拙訳の「Java開発者のための関数プログラミング」という書籍がオライリー・ジャパンより電子書籍(ePub)で出版される運びとなりました。原著者はProgramming Scala(日本語版「プログラミングScala」)のDean Wampler氏。 Java開発者のための関数プログラミングDean Wampler 著、山口能迪、株式会社トップスタジオ 訳 フォーマット ePub O'Reilly で詳細を見る Java開発者のための関数プログラミング - Google+ 本書は、無理をしてJavaで関数プログラミングで実装してがんばろう、という本ではありません。一部そういうところもあるかもしれませんが、そういう方向は目指していません。あくまで関数型と呼ばれるものにはどういう概
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の記事です。本当は
SEA Forum in March 2012 Twitterハッシュタグ: #seaforum0305 「実用期を迎えた関数プログラミング」 — 最新動向と今後の展望 — 主催: ソフトウェア技術者協会 参加者募集 ────────────────────────────── 今月のSEAフォーラムでは,今注目を集めている関数プログラミングを取り上げます.長らくコンピュータサイエンスの研究領域にあると思われていた「関数プログラミング」は、近年,実用的なプロジェクトでの使用例が続々と報告されるようになってきました.スピーカー,パネリストには早い時期から関数プログラミングの高い生産性と品質に着目し実用システム開発に活用されている方々をお招きし,その特徴,利点および導入への注意点などを紹介して頂きます.関数プログラミングに関する予備知識は一切必要ありません. 多くの皆さまの積極的なご参加をお待
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く