タグ

ブックマーク / propella.hatenablog.com (12)

  • Clojure のネームスペースについて調べる - 言語ゲーム

    Var とは何か Clojure のネームスペースについて調べてみました。ネームスペースを理解するには、その前に Vars について覚えておく必要があります。まず、例に使う簡単な関数を作ります。 user=> (defn hello "blah blah..." [] (print "Hello, World!\n")) #'user/hello user=> (hello) Hello, World! nil Clojure では defn を使って関数を定義する事が出来ますが、この結果返される #'user/hello とは何でしょうか? user=> (type #'user/hello) clojure.lang.Var type で調べると、clojure.lang.Var というオブジェクトである事が分かります。これは Clojure のグローバル変数を特徴づけるオブジェクトで

    Clojure のネームスペースについて調べる - 言語ゲーム
  • 2008-03-22

    最近やってる事を書きます。しばらく前に、アランさんからメールが来て、ここしばらくイアンの奴に全力投球するようにと言われました。他に Javascript がどうだとか OpenDocument がどうだとか沢山あるけど、色々出来ないのでとりあえず全然分かっていないイアンの奴を勉強するのが先決だと思い、エディタを書くという課題を自らに課しました。ほんとは物理シミュレーションとか、関数型言語を作るとか、そういう派手な奴をやりたかったのですが、イアンの奴がそれどころでは無い完成度なのでそれは諦めました。 なぜエディタかと言うと、良くある GUI フレームワークや、Squeak でさえもテキスト入力の部分はブラックボックスになっていて、ユーザが気軽に触れない事になっているので、前々から良くないと思っていたからです。この点で Swing は結構カスタマイズ出来るようになっていて参考になります。あと、

    2008-03-22
  • Fonc で遊ぶ - 言語ゲーム

    最近イアンの奴は Fonc と言ってるようです。これの peg を使って言語を作る実験をします。 準備 コンパイルして動作確認するまでの流れです。linuxmac を使います。(windows は挫折中) $ svn co http://piumarta.com/svn2/idst/trunk/ idst $ cd idst $ make $ cd function/jolt-burg $ execstack -s main $ cd ../examples/peg/ $ ../../jolt-burg/main boot.k peg.k -o calc.peg.k examples/calc.peg ; loading: boot.k ; loading: quasiquote.k ; loading: syntax.k ; loading: number.k ; loading:

    Fonc で遊ぶ - 言語ゲーム
  • アラン・ケイ - 「ソフトウェア工学」は矛盾語法か? [対訳版] - 言語ゲーム

    http://metatoys.org/oxymoron/oxymoron.html 京大でこないだのアランさんの講演 http://d.hatena.ne.jp/squeaker/20090120#p1 があった後に、kckm さんが 今回の話と http://d.hatena.ne.jp/sumim/20080806/p1 で紹介されていた「Is "Software Engineering" an Oxymoron?」の関連についてつぶやいていた のでなるほどと思って読み返してみました。ついでに暇だったので訳しました。といってもほとんど sumim さんの箇条書きを単に並べただけで新しい情報は無いですが、箇条書きが嫌いな人には読みやすいかと思います。間違っている場所があったら教えてください!また、この日記は下書きという事にして、読みやすくした分を http://metatoys.org

    アラン・ケイ - 「ソフトウェア工学」は矛盾語法か? [対訳版] - 言語ゲーム
  • Arduino - 言語ゲーム

    私は昔からマイコン工作に興味があったのですが、周りに知っている人もおらず、マイコン用のプログラムを書いたりPROM を焼いたり、そういう基的な事が全く分からず指をくわえておりました。最初 Arduino の事を聞いた時、オープンソースだとかフィジカルコンピューティングだとか、こりゃまた口当たりの良いセールストークを使った意味不明な奴らだと思っていたのですが、ふと、これは単にマイコン工作を簡単にした物だという事をちょっと前に知って、がぜん興味が湧いたのでした。で、ぽちっと通販してまったのです。 これが買った奴。Adafruit Indstries の Arduino Starter Pack http://www.adafruit.com/index.php?main_page=product_info&products_id=68 です。写真の左下にある Arduino だけだったら 3

    Arduino - 言語ゲーム
  • Arduino で Pong - 言語ゲーム

    Arduino を買ってまずやってみたかった事が、テレビに画面を出力する事です。普通のパソコンだとビデオ出力はハードの仕事なので僕たちには手が出せませんが、Arduino を使うとそんな所まで自分でいじれます。Arduino の掲示板にあった Arduino Pong というのを試してみました。まず必要な部品はこんな感じ。 Arduino ブレッドボード ビデオ端子(メス) 不要なコードを切って使います。 ワニクリップ フックアップワイヤ22番 抵抗 書いてある通りのが無かったので適当に 82Ω(灰赤黒金) GND に繋ぐ 330Ω(橙橙茶金) Digital9 に繋ぐ (video) 1KΩ(茶黒赤金) Digital8 に繋ぐ (sync) ビデオ端子はこのようにちょん切って中の線を出します。 ワニクリップをよじって付けます。中の線に赤を、外の線に黒を付けます。 Arduino Pon

    Arduino で Pong - 言語ゲーム
  • 言語ゲーム

    去年の年末くらいから子供に「デジタル・デトックス」の時間を作るようになった。一日三時間ほどネットに繋がないでゲームをやめるという時間だ。当初はデトックス中ルーターの電源を切ってネットに繋がらないようにしていたが、最近は諦めたのかデトックスの時間は自分でパソコンから離れられるようになった。僕自身は一日中ネットに繋がっているのでデトックスには懐疑的だったけど、ネットが無い方が色々な事に興味が向きやすいとが言うので最近は納得している。 ネットが無いと暇なので子供の方から色々遊びを提案してくる。例えば以前は嫌がっていた紙粘土工作や TRPG をやりたいと先週長女が言い出してびっくりした。たまたまと次女が外出していて寂しかったという事もあるのかも知れない。まずは長女と二人で『のびのびTRPG・マジック』をやってみた。 二人きりで TRPG というのは寂しいかもと思ったが、意外と長女には良かったよ

    言語ゲーム
  • FPGA Spartan-3A スターターキットであそぶ - 言語ゲーム

    XILINX 社の FPGA Spartan-3A 評価キットでプログラムを書いてボード上で実行するまでの最低限の手順を書きます。特に英語版を買った人は、箱に入っている資料では全く役に立たないので注意して下さい。でも XILINX のサイトに沢山情報があります。 ソフトウェアのインストール 付属の CD-ROM から ISE 9.2i 評価版をインストールしました。インストール時に XILINX ウェブサイトでキーを発行してもらう必要があります。EDK は不要です。 FPGA の動作原理 普通 IC というのは作ってから中の回路を変更する事が出来ません。しかし FPGA には回路の素が沢山入っていて、ビットストリームという情報から動的に回路を作り出します。つまり後から CPU にもメモリにも何にでもなる、チップ界の ES 細胞と言えます。残念ながら回路の合成は電子的に行われるので、回路の素

    FPGA Spartan-3A スターターキットであそぶ - 言語ゲーム
  • prolog Verilog HDL で 3 4 - 言語ゲーム

    図書館で HDL の教科書を読むと、ハードウェア記述言語というのはある意味マルチパラダイム言語だという事がわかった。と言うのも、ハードから近い順に次のような書き方を全部サポートしているのだ。 構造(Structure)記述 : 回路図をそのまま文字にしただけ データフロー(Dataflow)記述 : 数式のレベルで書ける 機能(Behavior)記述 : 副作用のある代入や、制御構造が使える。 こ、これは面白い!どこが面白いかと言うと、この Structure, Dataflow, Behavior というのは、プログラミング言語で言うと、論理型言語、関数型言語、手続き型言語に対応している。しかもこの順序は、実装から遠いと思っていた順だ。つまり、普通手続き型言語が一番機械語に近くて、論理型言語が一番遠くて実装がややこしい。しかし、ハードの世界になると逆転して、実は論理型が一番メカに近くて、

    prolog Verilog HDL で 3 4 - 言語ゲーム
  • 線形論理とコンピュータ革命 - 言語ゲーム

    週末は Linear Logic and Permutation Stack -- The Forth Shall Be First http://home.pipeline.com/~hbaker1/ForthStack.html 読んでいた。思ったのは、線形論理が私の人生の疑問の半分くらいを解決するだろうという事。そしてアランさんの言うコンピュータ革命とはこういう事なのかも知れないという事。 身分不相応にも未来を予測してみる。近い将来、小学校で習う算数は線形論理に基づいた物になる。未来の子供達は、カッコや優先順位や変数に悩まされる私達の数学を見て、何て野蛮で非能率なのだと言うだろう。まるで我々が漢数字やローマ数字の数学を、きわめて技巧的で非論理的だと思うように。 線形論理に基づくプログラミングとは、変数の使用を一度しか認めないプログラミングの事を言う。一度しか認めなくてプログラムなんか

    線形論理とコンピュータ革命 - 言語ゲーム
  • pepsi & coke - 言語ゲーム

    大島さんの記事 http://d.hatena.ne.jp/squeaker/20061031#p2 を読みながら、pepsi & coke の勉強をしています。 環境の準備 idst-5.7 に付属する jolt を使って勉強します。必要なファイルは http://piumarta.com/pepsi/ にあります。ここでは、ソースとバイナリ両方使います。ソースだけ落としてコンパイルしても勿論大丈夫です。まずバイナリを / 以下にコピーします。windows の場合は cygwin が必要です。ソースで使うのは example/jolt ディレクトリだけなので、それを適当な場所にコピーして make しておきます。以後このディレクトリで作業を行います。なお、linux で使うためには以下を実行する必要があります。 $ execstack -s main シェルを起動して coke 式を評

    pepsi & coke - 言語ゲーム
  • WikiPhone のコンセプト - 言語ゲーム

    月末までメンテしないと言いつつ気になってちょくちょく手直ししています。前回遅延が長すぎて話すのが大変だったので、音質を犠牲にしても遅延を減らしてみました。WikiPhone の使い方については先日の日記で書きましたが、コンセプトについてちょっとだけ書きます。 WikiPhone は VoIP に必要な機能のうち、通話以外の機能を取り除き、通信に HTTP を利用した物です。 通話以外の機能、例えば特定の個人を呼び出す方法は用意されていません。そんな事で使い物になるのかって?私たちは人を呼び出すのに、すでにメッセンジャーやメールなど他のアプリを持っています。WikiPhone では、似たような機能を作るのではなく、他のプロトコルと連携する方向を目指しています。 現行の VoIP、IP電話システムでは、音声通話から呼出、暗号化まで、ワンセットで面倒を見てくれます。しかしこれは単に、既存の電話を

    WikiPhone のコンセプト - 言語ゲーム
  • 1