タグ

ブックマーク / blog.bugyo.tk (6)

  • リリカル☆Lisp開発日記 » Blog Archive » ##のわりとどうでもいい話

    ※リストの循環は脳に悪影響を及ぼす可能性があります。 エントリを読むときは必ず(setq *print-circle* t)を利用して下さい。 <括弧を書かずに循環構造をつくろうとしたのがことの始まりでした> '#1='#1# => #1='#1# リーダマクロ ‘ を展開すると結果は、 #1=(quote #1#) になり、循環構造ができます。 しかし、CLISPでこれのcdrを取るとスタックオーバフローします。 (cdr '#1='#1#) *** - Program stack overflow. RESET ちなみに、SBCLだとちゃんと結果が表示されます。 (cdr '#1='#1#) => (#1='#1#) <ちゃんと!?> よくよく見ると、微妙におかしなことに気づきました。 #1=(quote #1#)は2個のコンスセルから構成されます。 しかし、(#1=’#1#)は3個

    Wacky
    Wacky 2010/06/11
  • CLでCと速度を競ってみた - リリカル☆Lisp開発日記

    前のエントリーで書いたdfa-multi-searchの展開形がメモリをう原因は、 labelsで作った関数を呼んでいたことみたいです。 インライン化して、ついでに型宣言と最適化オプションもつけたところ、 だいぶ速くなってきました。 ;;; CLISP Real time: 0.427904 sec. Run time: 0.416979 sec. Space: 0 Bytes ;;; SBCL Evaluation took: 0.025 seconds of real time 0.024786 seconds of total run time (0.024786 user, 0.000000 system) 100.00% CPU 37,124,872 processor cycles 0 bytes consed このあたりまできたら、Cとも張り合えるんじゃないかと思い、

    Wacky
    Wacky 2009/03/16
  • 凄い人見つけた (リリカル☆Lisp 開発日記)

    Lispのひび なんかね、13歳でLisp処理系作ってるらしいですよ。 私が13歳の頃はもぐらたたきを作るのが精一杯でしたよ。 それに引き換え、最近の若い人は凄いですね。 私もCで簡易Schemeインタプリタを作ったことがあるので、 返事がもらえるかは分かりませんが、気になったことを適当に書いておきますね。 * リーダはどうやって書いてるんだろう readを追加。数値アトムを読み込むことに成功。 80文字までのバッファでfgetsでstdinから読む。長すぎる場合、sskipが内部でバッファ切り替えなどもやるような仕組みでLispのと同じ。 (T216の現状) アトム読み込みのとき、isspace(..)の代わりに*.. == ' 'と書いていて間違いだった。改行とかも考慮するんだぁ。 後はリストを上手く読み込むように再帰構造を作るだけ。 (isspace) とのことですが、関

    Wacky
    Wacky 2008/09/01
  • ニコ動Lisp 2.0[lambda始動] (リリカル☆Lisp 開発日記)

    ニコニコ動画のメンテナンスが終わったので、ニコ動Lisp2.0(仮称)が始動しました。 【ニコニコ動画】ニコ動でLisp 「もっと評価されるべき」タグが付いていたので、文字アトムも評価することに。 もっと評価されるべきの意味が違うという突っ込みもありました。 期待通りの突っ込みをありがとうございます。 それはともかくスクリプトを更新して1分もしないうちに 「ラムダきたー」というコメントが書き込まれたんですよ。 どれだけlambdaが欲しかったんだwwww まあ、なにはともあれ、lambdaが無事動いてよかった。 普段から「lambdaかわいいよlambda」とお思いの諸兄も安心してニコニコできますね。 --- prognとかdefunとかLisp的(NOT Scheme的)なスペシャルフォームを持っていますが、 lambdaに関してはScheme的な評価規則となっています

    Wacky
    Wacky 2008/05/30
  • わーい \(^o^)/ LispをPostScriptで書いたLispで書いたよー! (リリカル☆Lisp 開発日記)

    zickです。 最近、巷(*)ではLisp(Scheme?)を実装するのが流行っているようで。 その流れにのっとって私も変なものをつくってみました。 ***PostScriptで書いたlisp*** ソース 実行結果 名前はまだないのですが、仮にpslispと呼びます。 このpslispはPostScriptで書いたLispインタプリタです。 単に式を評価するだけではなく、その値を図示してくれる優れもの(?)です。 実は去年の4月ごろにほぼ完成していたんですが、 条件分岐などを加え、再帰が使えるようになりました。 ***pslispで書いたlisp*** ソース 実行結果 pslispで動かすためにエスケープ文字を付加し、改行を消しているためカオスなことになってます。 まあ、これだけ見てもなんのことやらといった感じですが、 自分で書いたlispインタプリタの上でさ

    Wacky
    Wacky 2008/01/24
  • Erlangで毒電波送信 (リリカル☆Lisp 開発日記)

    お久しぶりです。zickです。 数日前、『Lispの歌』という言葉を目にし、一体何なのかと思ったら、 『かっこうの歌』のことだったんですね。(「かっこう→括弧」という洒落) 某所でネタとしてLisperが実際に歌った由緒正しきモノだそうです。 --- 話は変わりますが、相変わらずErlang触ってます。 それで、今はソケットの勉強をしているのですが、 練習という名目で毒電波(SSTP)を飛ばしてみました。 即席で作った怪しげなスクリプトを読み込んで、それに基づいてErlangがSSTPを飛ばします。 毒電波を飛ばしているErlangの関数はこんな感じです。 send_and_receive(Str) -> {ok,Sock} = gen_tcp:connect("localhost", 9801, [binary, {packet, 0}]), ok = gen_tcp:sen

    Wacky
    Wacky 2008/01/08
  • 1