リリカル☆Lispソース公開
10月 16th, 2007zickです。
先日リリカルLispをフリー公開しましたが、
リリカル☆Lisp(ときどきの雑記帖 リターンズ)
ソースコード公開ってわけぢゃないのね。しょぼーん。
という反応があったため、ソースも公開することにしました。
こちらから好きなだけダウンロードしてください。
一部、疲れているときに書いた奇妙なコメントがありますが、気にしないでください。
zickです。
先日リリカルLispをフリー公開しましたが、
リリカル☆Lisp(ときどきの雑記帖 リターンズ)
ソースコード公開ってわけぢゃないのね。しょぼーん。
という反応があったため、ソースも公開することにしました。
こちらから好きなだけダウンロードしてください。
一部、疲れているときに書いた奇妙なコメントがありますが、気にしないでください。
こんばんは。
zickです。
この度、リリカル☆Lispをフリーで公開しました。
もう思い残すことはありません。
今なら空も飛べそうです。
フリー版での変更点は、
– 任意のタイミングでインタプリタが起動できるようになった
– 一部のグラフィックの変更
この二点のみです。
従来のものとほとんど変わりません。
思えば、NScLisperのソースを書き始めたのが今年の1/11。
今日でちょうど9ヶ月、本当に色々ありました。
あとで思い返すと「若き日の過ち」のように感じるのかもしれませんが、
全て十代のうちにしたことなんで、きっと許してもらえるでしょう(笑)
開発に協力してくれた皆様、応援してくれた皆様、
手に取ってくれた皆様、購入してくれた皆様、
本当にありがとうございました。
実に3ヶ月ぶりでしょうか。
お久しぶりです。zickです。
本日、およそ半年ぶりにリリカルLispのソースをいじくりました。
大したことはしてないのですが、かなり戸惑いました。
NScripterの文法もかなり忘れ、悲しい限りです。
日記を書いてない三ヶ月間にも色々ありまして、
カップヌードルをずっと食べていなかったり、
かといって、それほどいい食生活を送っているわけでもなく、
試験前に欲しいゲームが発売して見事に単位を落としたり、
Erlangの勉強をしようと本を買って勉強していたり、
けれども、英語を読むのが遅くて時間が掛かったり……
まあ、あんまり面白くないのでこれくらいにしておきます(笑)
話は変わりますが、ほとんど更新してないのに足を運んでくれる皆様のために、
そろそろ何か少し大きいことでもやろうかと思います。
bugyoです。
先日オープンソースになったNScLisperを携えて、OSC 関西@京都へλ組が出展することとなりました。
オープンソースカンファレンス2007 Kansai
内容はNScLisperの展示ですが、組み込み例である、リリカル☆Lispの展示、販売も行います。
OSC2007関西@京都へお越しの方はぜひお立ち寄りください。
zickです。
リリカル☆Lispの内部で動いているLispインタプリタであるNScLisperのソースを公開します。
こちらからどうぞ。
(2012/05/29追記)
現在はgithubにリリカルLisp全体のソースを上げているのでそちらをご利用ください。)
なお、このソースはBSDライセンスとします。
あまり使い道はありませんが、ご自由にお使いください。
今回は、リリカル☆Lisp全体のソースではなく、NScLisperのみのソースですが、
単体で実行できる用意しておきました。
*実行方法*
(1)ダウンロードしたソースファイルの名前を”0.txt”に変更。
(2)http://www.nscripter.com/からNScripterをダウンロード
(3)nscr.exeを0.txtと同じディレクトリにおいて起動
まあ、ソースは恐ろしく汚いです。
コメントもただの一時的なメモに過ぎず、見てもなんのことかさっぱり分からないと思います。
ブラフマンのつぐみの言葉を借りるなら
…他人の可読性は意識してないもん
って感じです。
いや、それどころか自分でも読みたくないくらい汚いんですが(笑)
そうそう。
通販でとある方が、定額小為替を多めに入れて「うまい棒でも食べてください」と書いてくださいました。
お心遣いに感謝しつつ、うまい棒を購入し、λ組のメンバー数人で頂きました。
お腹をすかせた学生に食べ物を与えていただけるとはなんと優しい人なのでしょうか……
本当にありがとうございます。
本日記ではご無沙汰しておりましたbugyoです。
まずは、実費回収出来ましたこと御礼申し上げます。
赤字にならずにすんで本当に良かったです。
通販期限が迫ってきております。
本当は完成後一回イベントへ持って行ってそこで終了という筋書きだったのですが、
余りにも売れ残りが激くて、通販をしようと言う流れになったのでした。
実費回収も出来ましたし、余り長引かせてもしょうがないので、好き勝手やっておいて
恐縮ですが、この辺りでフェードアウトさせて頂くことにしました。
Nscripterですから体験版などでもう公開しているも同然ではありますが、
終了ついでに正式にNscLisperのソースを公開することになりました。
べ、べつにオープンソースを名乗りたいから公開するわけじゃないですよ。
OSCに出ようとか今のところ思ってませんよ。ほ、ほんとうに全然思ってないですよ。
あー、それにしても余ったディスクとかガイドブックとかには本当に困りましたねぇ。
λ組の皆さんが頑張って作ったものですし、捨てることなどできませんしねぇ。
京都駅付近のどこかで密かに放流でもしましょうか。でも、環境汚染は良くないですね。
いや、ホントに困りましたね。
やはり、京都といえばλですね。
こんばんは。zickです。
さて、リリカルLisp通販も、あと数日で終了ですが、
結局大量に在庫が残っており、いまだに私の下宿の一部を占有しています。
大量に余った本とCDですが、捨てるのはさすがにもったいないですね。
というより、あれだけ苦労して作ったものを私には捨てることは出来ません。
捨てるぐらいなら、どこかで放流させたいですね(笑)
zickです。
Webサイトで情報を公開し始めてからもう5ヶ月となるリリカルLispですが、
ようやく実費回収できました。
情報が公開されるや否やはてなブックマークに登録してくださった皆様、
体験版を公開すると、その感想を書いてくださった皆様、
イベントで買ってくださった皆様、通販で買ってくださった皆様、
本当に……本当にありがとうございました。
より多くの人に手にとってもらおうと思ってはじめた通販も、
そろそろ役目を果たし終えたかと考え、
あと2週間程度で通販を打ち切ろうかと思います。
とはいえ、実は在庫は沢山あったりします(笑)
それをどうするかは現在考え中です。
zickです。
このサイトも、もうあまり新しい人が来ることはなくなってきたかなー……
なんて思っていたら、はてなブックマークとかを見るとごく稀に件数が増えていて、
時々だけれど新しい人が来てくれているようで何よりです。
と、はてなブックマークを眺めていると、地獄Lispを紹介してくれた人がいるようです。
つれづれなるままに
誠にありがとうございます。
せっかくなんで地獄Lispのパワーアップ版である地獄Schemeで、
一体どんなことが出来るかを、ここに少し載せてみようかと思います。宣伝もかねて(笑)
(define cont #f) (+ 1 (call/cc (lambda (k) (set! cont k) 0)))
(1行が1回の入力->評価と対応しています)
簡単に解説。
最初の式は単に変数に値を入れているだけです。
で、2つの式ですが、これは、
「『1』と『現在の継続を引数としてある関数を呼んだ時の値』との和」を求めます。
“ある関数”とはもちろん「(lambda (k) (set! cont k) 0)」のことですが、
“現在の継続”とは、これからする処理のことで、
この時点において”現在の継続”とは
(1)これから何かを評価して値を求め、
(2)それに1を加えた値を求め、
(3)その値をトップレベルに返す
というものです。
この式を評価したときは単に(+ 1 0)の値である1がトップレベルに返るだけですが、
(cont 7)
を評価してやると、トップレベルに8が返ります。これは、
(1)これから何かを評価して値を求め、
の『何か』が7になり、残りの
(2)それに1を加えた値を求め、
(3)その値をトップレベルに返す
が行われるため、(+ 1 7)の値である8がトップレベルに返るわけです。
継続は勝手に破壊されるようなことはないので、何度でも呼び出すことができ、
(cont 127) => 128 (cont 255 => 256
このような結果となります。
“現在の継続”とは一体何かを平たく言うと、”そのときのスタックの状態”ですね。
もう少し面白いのが、ここで
(cons 'a (cont 15))
としたときです。この式の値は16となります。つまり、consが無視されるんです。
これは、(cont 15)が評価された時点で、これからする処理が
「consを呼び出しトップレベルに戻る」ではなく、
「何かに1を加えてトップレベルに戻る」に書き換わるためです。
要するにスタックの状態を丸ごと書き換えるようなものです。