Project Euler † プログラムで解く数学の問題集です。 公式サイト 適当に和訳してます。我こそはと思う人はライセンスを確認した上で自由に書いてください。 ↑
Project Euler † プログラムで解く数学の問題集です。 公式サイト 適当に和訳してます。我こそはと思う人はライセンスを確認した上で自由に書いてください。 ↑
前説 FOO言語においては、InterpreterとくらべてCompilerが最適化しているのは、テキストをできるだけまとめて出力するようにすること。 The Compiler The compilerのアーキテクチャ。 html-compilerクラス。このオブジェクトにbackendの総称関数へ成されたopsを集積させる。 backendの総称関数は、前項へのops書き込み機能を持つ。 opsを最適化する関数にわたし、最適化される。 最適化されたops vectorをgenerate-code関数が受け取り、CLのコードを吐く。 compilerがhtml-compilerのときのprocessor interface(メソッド)は、html-compilerへのopsの集積処理とする。 関数sexp->opsを定義する。これは、前項を順次S式に適用してopsのvectorを作成する。
オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な
RubyによるビルドツールRakeの覚え書き。興に乗ったので詳しく書いてみた。 2014/02/20 Rakeの作者、Jim Weirich氏が亡くなられました。安らかに… Rakeとは? インストール 単純なRakefile タスク ファイルタスク ルール ディレクトリ作成 タスクの説明 ファイルリスト クリーニング パッケージ作成 タスクの動的生成 テストタスク 複数のRakefileの連携 名前空間 参考URL Rakeとは? Rakeは、MakeをRubyで実装したものを超越したビルドツールである。 世間では、ビルドツールというとMakeやApache Antが有名で、よく使われている。 Rakeは、これらのいいとこ取りをした上で、特有のフィーチャーを追加した新しいビルドツールであり、複雑なビルドを柔軟に書きこなすことができる。その秘密は内部DSLという仕組みにあり、このおかげでビ
| HOME | Copyright (C) 2007 Koike Information Design Lab. All Rights Reserved.
GrahamのANSI Common Lispでは嫌われていて碌に説明のないloopマクロ。一方、Practical Common Lispでは対照的に好んで用いられていて、全編に渡って頻繁に使われている。しかしloopマクロは難しいという意識があるのかその説明は第22章とかなり後回しにされており、ちぐはぐな感を受ける。ここでは、LOOP for Black-Belts という題のつけられたその章で解説されているloopマクロの用法を整理してみた。 ANSI Common Lispでの黒魔術扱いに敬遠していたloopマクロだったが、こうして整理してみるとそれほど難しく考えずとも便利に使うことができそうだ。 目次 繰り返し 計数繰り返し コレクション内繰り返し 変数更新しながら繰り返し ループ終了条件の追加 アクション 集約 ループ内ローカル変数 任意の式の実行 条件分岐 ループ中断 その他
that book is dead sexy —Xach on #lisp (more blurbs) This page, and the pages it links to, contain text of the Common Lisp book Practical Common Lisp published by Apress These pages now contain the final text as it appears in the book. If you find errors in these pages, please send email to book@gigamonkeys.com. These pages will remain online in perpetuity—I hope they will serve as a useful introdu
<A HREF="index_jp.html">�$B%U%l!<%`$J$7L\<!�(B</A>
はじめに一言。たいした思案もなしにメソッド結合を使うのは、手放しで多重継承を使うようなもので、あっと言う間にコードを把握できなくなります。 defmethod の完全な文法を次に示します。 defmethod function-name {method-qualifier}* specialized-lambda-list [[declaration* | documentation]] form* ここでは defmethod をいつも通りに使うか、標準メソッド結合 (standard method combination)の定義に使うかだけを見ていきます(その他のメソッド結合もありますし、自分で新しいメソッド結合を定義することもできますが、そこまでした人を見たことはありません)。標準メソッド結合では、次のキーワードのうち一つだけ指定できます::before, :after, aroun
Haskellは、純粋数学的な単純さを求めて副作用を取り除いた関数型プログラミング言語である。関数型言語でプログラミングを行うことは、標準的な命令型の手法に慣れた開発者にとっては多少の挑戦であるかもしれない。しかし心配は無用。今回は、Haskellの簡単なクイックスタートを提供しよう。 関数型言語では、(Java、C、それらから派生した言語のような)昔ながらの命令型スタイルとは多少異なるプログラミングスタイルを用いる。関数型言語では、「レシピ」のようにそれぞれのステップを実行して欲しい順番に全て書き出して並べるのではなく、パーツを用いて一本の式を構成することによってプログラムを記述するのである。 関数型のパラダイムをベースにした言語は、プログラミングの世界では現在ホットな話題となっている。関数型言語のファンは、関数型のコードはずっと短く、理解するのも容易で、エラーを引き起こしにくいと主張し
このState Mapはゲートの制御モデルを表現しています。ゲートは2つの状態Locked(閉じている)とUnlocked(開いている)をもち、2つのイベントCoinとPassを受け付けます。 Coinイベント 門番が入場料を受け取った Passイベント 誰かがゲートを通過した また、ゲートには4つのアクションが定義されています。 Unlock ゲートを開ける Lock ゲートを閉じる Alarm 警報を鳴らす ThankYou 余分なお金をもらったことに礼を言う このState Mapの読み方は以下のとおりです: ゲートがLocked状態のとき: Coinイベントが発生したら、Unlocked状態に遷移してUnlockアクションを起こす。 Passイベントが発生したら、閉じているゲートを無理矢理誰かが通過したことに対しAlarmアクションを起こす ゲートがUnlocked状態のとき: P
このホームページは以下に移動しました. ブックマークを張り直してください. 5秒後に自動的に移動します. http://kozos.jp/kozos/
このページは、Combinatory Logic Tutorialの翻訳です。 http://homepages.nyu.edu/~cb125/Lambda/ski.html 基本的に超訳です。 訳の正しさは全く保証されません。 訳のおかしい部分は多数あります。 翻訳元サイトの許可を取ったりはしていません。 無認可です。 訳者による前書きと感想コンビネータ論理チュートリアル 訳者による前書きと感想 訳してみたものの、ちょっと、たったこれだけの説明では、はじめてコンビネータ論理を知った人が読んで充分に理解できるとは思えない。 どうも、この文書は、原文の上位ディレクトリにあるLambda tutorialを読んだ後に読むべきものっぽいようだ。 しかし、流石にこっちまで訳す気力は無い。 そういう訳で、これだけを読むよりは、Unlambdaのチュートリアルを読んだ方がずっと、コンビネータ論理を理解
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く