v3.49.7 Menu, Unlimited Full Money, Unlocked Tanks

あと、やはりネットワーク周りなどI/Oの多いプログラムの書きにくさが課題になっている印象。関数的なI/OはFRPで解決できそうな気がするんだけど調べてない。そろそろFRPをちゃんと理解したいなー。 Parsec 3活用事例: Keepalived構文チェッカ - maoeのブログ なんて書いてから早1ヶ月半、ようやくFRPが掴めてきたのでわかったことをまとめてみます。 Reactive programmingって何? FRPの前に、一般的にwikipedia:en:Reactive programmingと呼ばれるパラダイムについて触れておきます。reactive programmingとは疑似言語を使ってかなーり大雑把に説明すると、 var a = 1 var b = a + 1 a = 10 // aを書き換える print b // => 11print bの出力は2ではなく11です
Rob Pike discusses Plan 9, an operating system developed at Bell Labs as the successor to UNIX. Some key points of Plan 9 include its use of /proc instead of /dev for I/O, its distributed file system design with everything treated as a file, and its emphasis on concurrency through lightweight processes and message passing. Plan 9 aims to improve on UNIX with a more unified and simplified design.
最近再び Functional Reactive Programming (FRP) について調べているのでまとまり無くメモする。まず大まかな言葉の意味については http://en.wikipedia.org/wiki/Reactive_programming から辿るのが良いと思う。簡単に言うと、FRP とはスプレッドシートの計算モデルを拡張したライブラリや言語、プログラミング技術の事を言う。Function という言葉は付いていたり付いていなかったりするけど、Reactive Programming は副作用を制限する手法なので、どの手法も多かれ少なかれ関数的に使う。 FRP はかなり大雑把に使われる言葉なので人に説明するのが難しい。だけどよく似た粒度の言葉としてはコレクションライブラリくらいが丁度良いと思う。関数プログラミングや論理プログラミングのような大げさな言葉では無い。APL
Ubuntu での Clojure と Leiningen 超入門 JDK は既に用意出来ているものとしますね.sudo apt-get install openjdk-7-jdk とでもしておけば大丈夫なんじゃないでしょうか? (ダメだったら教えて) まず lein を取ってきてどこかパスの通ったところに設置します.そして実行権限を付与して実行します. # パスとかなんのこっちゃ勢向けコピペ用コマンド # これ実行するだけでとりあえず動かせまっせ export PATH=$HOME/local/bin:$PATH if [ ! -d $HOME/local/bin ]; then mkdir -p $HOME/local/bin; fi # ダウンロード & インストール cd $HOME/local/bin wget https://raw.github.com/technomancy
ErlangでHaskell風の Maybeモナド と do記法 を使う方法。エラーチェックなどを繰り返し行うコードが簡潔に記述できる。RabbitMQの開発者が公開した [erlando] (https://github.com/rabbitmq/erlando) で実現する。 erlandoにはListモナドやStateモナドなども含まれており、もちろん自分で新たにモナドを書くこともできる。また一部のモナドではMonadPlus型も実装されており guard/2 関数などが使える。さらに、関数の部分適用を読みやすく記述できる「cut」や、関数のインポート時に関数名を変更することで名前の衝突を避ける「import as」という機能もある。 maybe(A) 型 Erlang/OTPでは処理が失敗するかもしれない関数は、失敗したことを「例外」ではなく、「戻り値」で表現する。例えば list
モナドの物理的なアナロジー モナドは非常に抽象的なエンティティなので、ときには、モナドそのもの について直接考えるより、モナドのアナロジーとしての具体的なシステムを 考えるのが有用です。この方法では、物理的な直観と経験を利用して、 計算モナドの抽象的世界を再考するための洞察を得られます。 ここで展開する特殊な物理的なアナロジーは機械化された組み立てラインです。 これは、モナドに完璧に合致するものではありません。— 殊にモナド 計算の高階性ある局面の幾つかでは。— しかし、初期段階では、モナドが どのように機能するかを理解するには十分役立ちます。 Haskell のプログラムをベルトコンベヤと考えることから始めましょう。 入力はコンベヤの端に載せられ、一連のワークエリアへと運ばれます。 各ワークエリアにおいて、ベルトコンベヤ上の物品になんらかの操作が 加えられ、そしてその結果はまたベルトコン
1 Emacs Lisp Haskell IIJ-II 2 Emacs Lisp Haskell 3 4 http://practical-scheme.net/trans/reesoo-j.html 5 Lisp Java Java Lisp 6 7 Emacs Lisp Haskell Emacs Lisp Haskell 8 9 10, 20, 30, 40, 50 0 n n 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 10 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 for 11 for Douglas Crockford JavaScript: http://www.crockford.com/javascript/javascript.html for JavaScript
_ Programming Rules and Conventions [erlang] Kai-devel-ja でコーディング規約について話題になりました.Erlang に 一般的な規約があるのか知らないのですが,下記の文章がそれっぽいので 紹介します. Program Development Using Erlang - Programming Rules and Conventions コーディング規約というより,「モジュール間の依存性を減らす (特に循 環)」などの設計ルールも含めたお作法一覧です.参考になる部分が多いの で,粗っぽい日本語メモを公開します. # Kai はなるべくこの文書に準拠する予定です pure function とは,副作用のない関数である.副作用は,send (!), receive, exit, get/put などプロセス環境を変更する BIF によ
1. Scala の覚えやすそうな点と、すぐに忘れそうな仕様 Scala に興味を持った理由は、「今からでも遅くない これから始めるScala(前編)」 で挙げられていた以下の特徴による。 オブジェクト指向と関数型言語の特徴を組み合わせています。Scalaでは、関数をオブジェクトとして扱うことができますし、高階関数も利用できるなど、関数型言語からさまざまな特徴を取り入れています。 Scalaは静的型付け言語ですが、型推論によって型の記述を省略することができます。変数や関数の宣言時に、コンパイラが型を推論してくれるため、型の指定をいちいち行わなくてもよいのです。 Trait(トレイト)という、実装を持つことができるインターフェイスを利用して、Mix-Inができます。 暗黙の型変換(implict conversion)などを利用して、DSL(ドメイン固有言語,Domain-Specific
Wikipediaのプログラム意味論のページによると、プログラムに関する意味論は公理的意味論 (axiomatic semantics)、操作的意味論 (operational semantics)、表示的意味論 (denotaional semantics) の3つに大別されるそうだ。 しかし、説明を読んでも、なにがなんやらさっぱりわからない、という人の方が多いのではないだろうか。「操作的意味論: 何らかの変換を施すのではなく、その言語の実行によって直接的に意味を説明する。」という説明で膝を打つ人がいるとしたら、もうその人はWikipedia読んでる場合じゃないだろう。 たかが論理、されど論理によれば、公理的意味論とはHoareの体系の推論規則を通してプログラムの意味を与える物であり、操作的意味論とは「仮想機械の定義と、プログラムから仮想機械のコードへの変換規則(早い話がコンパイルのし方
2012-08-21 John Wiegley さんの “Monads in Pictures” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2012年8月20日 John Wiegley 著 2012年8月21日 e.e d3si9n 訳 これはモナドのチュートリアルではないし、ここには数学用語も出てこない。本稿は、既にモナドを一応使えるぐらいには習った人を対象とする。視覚化することで、何のために何をやっているかが明らかになるはずだ。 関数 モナドに対する直感を得る一つの方法として関数からモナドへの抽象化をたどるというものがある。関数が何をやっているのかを簡単な絵で表してみよう。Haskell の関数の呼び出しの構文を上に、同じ演算を視覚化したものを下に置いた: 関数はある値 a を投射 (map) して別の値 b を得る。中で何が起
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『F#でIOモナドっぽい何かを作ろうとしていたら、 i|:!ヾ、_ノ/ u {:}//ヘ いつのまにか、全然別モノのLazyモナドをつくっていた。』 |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも 何をされたのか わからなかった… ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった… // 二二二7'T''
1 pixel|サイバーエージェント公式クリエイターズブログ サイバーエージェントのクリエイターの取り組みを紹介するオフィシャルブログです。最新技術への挑戦やサービス誕生の裏話、勉強会やイベントのレポートなどCAクリエイターの情報が満載です。 みなさま初めまして。 私、2011年4月に中途で入社、現在はアメーバ事業本部でピグ×スマホ×Webの開発を担当している平松 @co_sche (co-sche)と申します。 家では楽器を弾いて自力で疲れを癒すアラサー男子です。 想定している読者は、JavaScriptの基本的な構文を理解している方JavaScriptで関数を定義・使用したことのある方LLと総称される言語を扱っているが、関数型プログラミングを意識したことのない方です。 はじめに早速ですが「関数型プログラミング」という字面が長く、タイピングが辛いので所々FP(Functional Pro
2012年9月初頭、東京・某所で開催された「函数プログラミングの集い 2012」というイベントに参加した。 このイベント、文字通り、「Haskell」や「Scala」「OCaml」「F#」「Erlang」といった関数型プログラミング言語に関するイベントなのだが、その午前中の講演を聞いて、筆者は少々面食らった。 関数型プログラミング言語などの研究者である電気通信大学 准教授の中野圭介氏による講演だったのだが、同氏は講演が始まるや否や「これから『爆弾』を投下します」と前置きし、こう述べたのだ。 「『関数型言語』を使ってはいけない」と。 関数型プログラミングに関するイベントで、いきなり「使うな」という発言は、確かに衝撃的である。筆者だけかもしれないが、この発言の後、一瞬、会場が凍り付いたようにも見えた。一体、どういうことか。 実はこの発言、「使うな」という部分に重点があるのではなく、「関数型言語
最近「プログラミング Erlang」で Erlang の勉強を始めました。 プログラミングErlang 作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行本(ソフトカバー)購入: 8人 クリック: 284回この商品を含むブログ (97件) を見る Erlang を勉強してて気づいたのですが、「Erlang の関数は状態遷移の状態」なんだ、ということです。実行中の関数が、プログラムの現在の状態に対応する、というものです。他の手続き型のプログラミング言語でもそうなのですが、「外部のアクションによる状態の遷移」は手続き型では記述しにくいです。逆に Erlang はメッセージパッシング機構があるので、アクションはそのままかけます。もちろん Erlang の最大の特徴である「並行プログラミング」によって、「並行状態」も簡単に記述でき
id:tanakhさんに、モナドがわからんので、文系的に説明して欲しいといったのだけど、文系的表現って何って事で、答えに困ってしまいました。 http://www.sampou.org/haskell/a-a-monads/html/ これ以上の説明ってことで、正確性をなくすから、正確性の意味では以下だけど、わかりやすいって感じの文章を求めているので、、、。 うそついていいから、わかりやすく。 アインシュタインTVみたいな感じ オブジェクト指向の説明でのアクターを使った説明みたいなのが欲しい ってことなのだけど、アインシュタインTVなんて知らないだろうし、 ひとつ書いてみました。モナドの説明を最初から読みながら書いたので、例は後ろに乗ってたクローン羊の問題がいい例なので、あれを式をまったく使わずに説明したほうがいいなと。 「Haskellを勉強するにあたって重要な概念があります。それがモナ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く