腐lispの第一回です。いきなりですが、関数定義についての話をします。 関数定義の方法 elispの関数定義の方法は以下のようになっています。 (defun 関数名 (仮引数1 仮引数2 ...) フォーム) かけざん関数をつくる というわけで、早速、みなさんにはおなじみのあのかけざんをする関数をつくっちゃいましょう☆★☆★☆ (defun × (seme uke) (message "%s × %s" seme uke)) (× 'kusakabe 'sajo) ; "kusakabe × sajo"と表示される 簡単ですね。 上のコードはEmacsのscratchバッファに書いてすぐに試すことができるので、好きなだけかけざんしましょう。 括弧について 最初は括弧が多くて戸惑うかもしれません。でも慣れればかわいく見えてくるので大丈夫です。 それでも信じられないという方は、開き括弧"("
会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.
Erlangの 並列計算の入り口 2007/OCT/23 2010/FEB/16 たけおか Erlanはコミッティド・チョイス言語だ 2010/FEB/16追記 • コミッティド・チョイス言語 – 節の頭にガードがある – ガードを超えた節だけが、選ばれて走行する – Erlanでは、ガード部分が、パターン・マッチングになっている • 多くのプロセスが、チャンネル通信する – ErlangはOccam言語とそっくり – 詳しくは、中身を読もう RPC • RPC: Remote Procedure Call 遠隔手続き呼び出し – 遠隔にある手続きを、同期的に呼び出す(最近は非同期的な RPCもある) – 遠隔の手続きは、仕事が終わると返り値をもどす • 同期的 – 呼ばれた側の仕事が終わるまで、呼び出し側は止まる – バグが出にくい – 素朴な実装の場合、呼ばれる側の関数は、同時に複数
Prologの入門文書に飽きた人に たけおか@AXE (竹岡尚三) Update: 2007/DEC/08 Update: 2007/AUG/18 初出: 2007/MAR/10 なんだか、Webの世界には、日本語では、純粋な論理型言語としてのProlog入門の 文書しかなく。 Prologは、実用言語(を目指しているはず)なので、ピュアな論理の話だけでは、 いけないと、思い… で、こういう雑文にて、恥をさらす。 1. 高階による後悔 実用プログラムが、あんまりに高階手続きを使っていると、それはそれで、困り そうなものなのだが… でも、やはり、高階な呼び出しは、必要だ。 aho(X,Z) :- A =.. [plus,1,X,Z], call(A),print(Z). という述語を定義し、 実行とその結果は次のとおり。 ?- aho(4,Z). 5 Z = 5 「call/1」 は、 引数
Prologを使ってみる (動作確認 程度のProlog入門) たけおか@AXE (ex.山本ナヲミ) %% これは、筆者が 技術評論社 刊 ソフトウェアデザイン誌 「つこてなんぼのFreeBSD」 1998年11月 SB-Prologを使う に掲載した原稿をもとにしたものです %% 0. はじめに この文書は、SWI Prolog, GNU Prolog, SB-Prologなどに適用できます。 Gnu Prolog: http://www.gprolog.org/ SWI Prolog: http://www.swi-prolog.org/ GnuProlog, SWI-PrologはISO規格準拠のPrologです。 SB-Prologは、DEC10 Prolog準拠です。 1. Prologとは Lispと同じくPorlogも人工知能用の言語として、1980年代には大いに利用さ れ
沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。
はじめに 1970年代にヨーロッパを主な舞台として生まれ育ったプログラミング言語Prolog(programming in logic)は、事実とルールから一種の自動推論を行う点に特徴があります。その基本的な動作は200行ほどのRubyプログラムで実現できます。ここでは、筆者がRubyで作成したProlog処理系を解説します。 Prologによる簡単なプログラム例を下記に示します。 これは「ソクラテスは人間(human)である」「プラトンは人間である」という事実と、「人間ならばいつか死ぬ(mortal)」というルールを書いたものです。mortal(X) :- human(X)は、変数Xが実際には何であったとしても、もしもhuman(X)が成り立つならば(つまりXが人間ならば)、mortal(X)が成り立つ(つまり、Xはいつか死ぬ)という意味です。 簡略化のため、本処理系ではRubyの構文要
公開にあたって 8月も下旬に差し掛かった空の雲。その下の青い水面。東海道新幹線の車窓から、浜名湖を眺めています。 もう8年も前に書いた本の内容を、Webで公開して欲しいというリクエストを頂いたのは、とても嬉しいことでした。あの当時、メーリングリストで議論や情報交換を行い、知見を交わした人達の一部と、今、仕事で繋がりを持つ機会に恵まれていることに、素敵な縁を感じます。 今回、Jorge G. Mare (a.k.a "Koki") さんからリクエストを頂くことになったのも、何かしらの縁があるのかも知れません。一度も顔を合わせたことがなく、メールでのやり取りのみですが、誠実な人柄は、メールの文章から伺えます。 この原稿内容のWeb公開にあたり、出版元のソフトバンクパブリッシングに公開可能か問い合わせを行ったところ、問題ない旨の御快諾を頂きました。有難うございます。 この本の執筆当時、Be社に在
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く