タグ

gaucheとschemeに関するhigeponのブックマーク (17)

  • Gauche用のSwankサーバ - tszの日記

    Slimy hackathon#1には用事があって参加出来なかったのですが、何かやりたいなと思っていまして、gauche用のSwankサーバを書いてみることにしました。 mit-schemeのSwankやswank.lispのコード、あとは*slime-events*バッファへ表示される情報を基に、何とか遊べるレベルまでの実装にはなりました。 以下の様な機能を実装してあります。 シンボルの補完 (c-p-c形式も) replでの評価 (read writeも可) 編集バッファでの評価(C-x C-e, C-c C-c どっちもやることは同じですが…) 以下のバージョンで確認しています。 Slime 2009-03-09 Gauche 0.8.13 以下の設定を.emacsに追加して、M-x gaucheでreplが起動出来ます。 (push "<path-to-slime-dir>/sli

    Gauche用のSwankサーバ - tszの日記
  • はてなブログ | 無料ブログを作成しよう

    仲春はゆっくりと通り過ぎる 寝て起きたら3月である。今日の東京の最高気温は20度を超えている。正月のインフルエンザが完治して、これでやっと健康で文化的な年度を始められるぞ、と意気込んだのも束の間、今度は原因不明の高熱を出して1週間寝込んだ。 脳がグツグツ煮える音が聴こえそうなほど…

    はてなブログ | 無料ブログを作成しよう
    higepon
    higepon 2008/02/15
    良いまとめ
  • Gaucheでライフゲームを作ってみた

    どう書く?orgのライフゲームのお題(http://ja.doukaku.org/126/)をGauche(Lispの一種であるSchemeの処理系)で実装している過程を動画にしてみました。Lispを知らないと何やっているのかよく分からないと思いますが、ひたすら「関数を書いては実行」を繰り返してプログラムを作っていっています。実装時間は40分くらいかかっていますが、動画では早送りで7分ちょっとに圧縮しています。なお、BGMはsm982882よりお借りしました。また、動画で使用しているフォントはあずきフォント(http://key.milkcafe.to/azuki/font/index.html)です。

    Gaucheでライフゲームを作ってみた
    higepon
    higepon 2008/01/26
    最高です。
  • はてなブログ | 無料ブログを作成しよう

    【自分語り】1推しの卒業によせて . 私の1推し、ゆきりんこと柏木由紀ちゃんが、17年に渡り在籍したAKB48を卒業することになった。 この機会に、ゆきりん推し(48ファン)としての自分自身のことをすべては不可能であるものの振り返ろうと思う。 内容からして世代がわかることも仕方ないし、限りなくゼ…

    はてなブログ | 無料ブログを作成しよう
    higepon
    higepon 2007/05/28
    知りたかったことがまとまっている。こういうの良いですね
  • Gauche:YAGHG:VM:dynamic-wind

    定義元の調べ方 まずdynamic-windそれ自体を評価すると実体はCの関数であることが分かるので、*.stubから検索してみよう。 $ grep -A 1 dynamic-wind src/*.stub src/stdlib.stub:(define-cproc dynamic-wind (pre body post) src/stdlib.stub- (call "Scm_VMDynamicWind")) Scm_VMDynamicWind src/vm.c:3003- 3003 ScmObj Scm_VMDynamicWind(ScmObj before, ScmObj body, ScmObj after) 3004 { 3005 void *data[3]; ... 3016 data[0] = (void*)before; 3017 data[1] = (void*)body

    higepon
    higepon 2007/02/21
    dynamic-windの実装について
  • クロージャとブロック (前編) - Teny's Log

    上のエントリでは、これまで考察してきたクロージャについての簡単なまとめを行ないました。そのエントリで最後に書いたブロックにも着目しながら、これまで考察してきたクロージャについて、コードを挙げて検証してみようと思います。 さて、上のエントリでは、クロージャの基盤となっている三つの仕様を挙げています。 しかし、これらのうちの幾つかが欠ける場合でも、Scheme で言うところのクロージャではないかもしれませんが、有効に利用可能な手続きを活用することは可能であると、私は考えています。 これは、上で挙げた三つの仕様が揃わない言語環境に於いて、クロージャの様な仕組みを活用することが可能か、という視点に置き換えることができます。例えば、Emacs Lisp や Java などでクロージャの様なコードを書けるか否か、ということですね。 ;; Java にもクロージャを導入可能に (?) といった動きもある

    クロージャとブロック (前編) - Teny's Log
    higepon
    higepon 2006/06/12
    読んだが完全には消化できなかった。あとで復習する。
  • クロージャについて: 一旦、簡単にまとめてみます。 - Teny's Log

    これまで考察してきたクロージャの件ですが、まだまだ頭の中では発散しているのですけど、一旦、簡単にまとめておきたいと思います。 ただ書き散らかしているだけでは意味ない (いや、意味はあると思ってるんですけど。自己矛盾だ。) ですからね。 Rui さん、shiro さんのコメントに助けられて、今では、 手続きをファーストクラスオブジェクトとして扱える。 静的スコープを持つ。 無限のエクステントが保証されている。 の三つの基盤が揃うことで、クロージャが実現されていると考えるに至りました。 Scheme 以外ではどうか判りませんが、こと Scheme に於いては、上の仕様に立脚する形でクロージャが実現されていると考えて差し支えないと思っています。 ただ、言語設計の推移としては、shiro さんから頂いたコメントで示唆されている様に、動的スコープに於ける環境問題 (FUNARG problem) が

    クロージャについて: 一旦、簡単にまとめてみます。 - Teny's Log
  • クロージャについて少し考えてみました。 - Teny's Log

    クロージャについて色々と考えてみました。 以前にも書いたのですが、そもそも Gauche をインストールした目的の一つに、クロージャの動作をもっと理解したいという目的があったので。 で、色々と shiro さんが公開されているドキュメントを読み返したり、Gauche 上で試行錯誤しながら、これまでの私の解釈には誤りがあったと思う様になりました。 これまでの私の理解では、クロージャとは、 クロージャは、ファーストクラスのオブジェクトである。なので、名前も付けられるし、関数の引数や戻り値としても利用できる。 クロージャには、(そのクロージャ生成時の) 環境が閉じ込められている。 クロージャ実行時に参照される環境は、実行時点のものではなく、クロージャ自身に閉じ込めてある環境になる。 というものでした。 これらの認識自体には誤りはないと思っている (誤りがあったらツッコミをお願いしたいです。> 識

    クロージャについて少し考えてみました。 - Teny's Log
    higepon
    higepon 2006/06/02
    識者のコメントが楽しみ。
  • 関数型言語の勉強にSICPを読もう - (40) 3章 - 標準部品化力、オブジェクトおよび状態 (156-163ページ) - higepon blog

    待ちに待っていたデジタル回路のシミュレーション。 オラ、何だかワクワクしてきたぞ! 問題3.24-27 略。 問題3.28 and とほぼ同じ。 今の段階では add-action の実装が見えないので or-action-procedure が2回呼ばれておかしくなるんじゃないかと心配。 と思ったけどよく考えれば入力は同時に届くことはありえないのでこれで正しい。 (define (or-gate a1 a2 output) (define (or-action-procedure) (let ((new-value (logical-or (get-signal a1) (get-signal a2)))) (after-delay or-gate-delay (lambda () (set-signal! output new-value))))) (add-action! a1 or

    関数型言語の勉強にSICPを読もう - (40) 3章 - 標準部品化力、オブジェクトおよび状態 (156-163ページ) - higepon blog
  • 関数型言語の勉強にSICPを読もう - (39) 3章 - 小休止 ファイルI/Oと正規表現 - higepon blog

    実用っぽいコードを書かないと中々上達しないと思うので無理やり書いてみました。 引数で受け取ったファイルを開いて、ファイル内を置換する。 「sedとかPerlならすぐに書けるよ」とか「もっと汎用化したスクリプトを書いたほうが良い」というのは分かるのですがまずは練習ということで。 まだ完成していなくて、現在分かっている問題点は 入力と出力ファイルを同じにするとおかしくなる 結果文字列が""で囲まれてしまう 改行コードがなくなってしまう などなど。 気長に直していこう。 #!/usr/bin/env gosh (use file.util) (define (main args) (define (replace-text file) (let ((lines (file->string-list file)) (result "")) (for-each (lambda (line) (set

    関数型言語の勉強にSICPを読もう - (39) 3章 - 小休止 ファイルI/Oと正規表現 - higepon blog
  • 関数型言語の勉強にSICPを読もう - (36) 3章 - 小休止 port-foreach - higepon blog

    Ruiさんよりコメントを頂きました。 Schemeに慣れた人が書くとこんなにもきれいなのか。ありがとうございます。 このようにコードを見せていただくことはとても勉強になります。 sum は (apply + list) と書けますね。Gaucheだとport-for-eachという便利な高階手続きがあって、それをつかうと全体は次のようになります。(一時ファイルを使わないで済むよう、call-with-input-fileの代わりにcall-with-input-stringを使いました。) たしかに、sum は (apply + list)ですね。何で気づかなかったんだろう。 (port-for-each (lambda (list) (print (apply + list))) (call-with-input-string ”(1 2 3) (4 5 6)” (lambda (in)

    関数型言語の勉強にSICPを読もう - (36) 3章 - 小休止 port-foreach - higepon blog
  • 関数型言語の勉強にSICPを読もう - (34) 3章 - 標準部品化力、オブジェクトおよび状態 (156ページ) - higepon blog

    問題3.22 え?手続きで出来るの?と思って一瞬でも疑った自分を恥じます。 Scheme楽しいよ。楽しすぎるよ。 (define (make-queue) (let ((front-ptr '()) (rear-ptr '())) ;; public interface (define (empty-queue?) (null? front-ptr)) (define (front-queue) (if (empty-queue?) (error "empty queue") (car front-ptr))) (define (insert-queue! item) (let ((new-pair (cons item '()))) (cond ((empty-queue?) (set! front-ptr new-pair) (set! rear-ptr new-pair)) (els

    関数型言語の勉強にSICPを読もう - (34) 3章 - 標準部品化力、オブジェクトおよび状態 (156ページ) - higepon blog
  • Gaucheユーザーリファレンス HTML Help版(chm) - higepon blog

    id:onishi:20060512#p1を参考にGauche ユーザーリファレンスのHTML Helpを作りました。 gauche-chm-20060512.zip (約1MB) 速く・簡単に検索できるのでとても便利です。 良かったらご利用ください。 備考 Gauche - A Scheme Interpreterにて2006/05/12時点に公開されていた日語版「Download tar+gzipped htmls」を利用して作成しました。 ツールで目次を生成する都合でオリジナルHTMLのtitleタグから「Gauche ユーザリファレンス: 」という文字列を削除しました。 ツールで変換する際の都合で文字コードをUTF-8→Shift_JISに変換し、metaタグ内のCharsetをShift_JISに書き換えました。 gauche-refj_1.htmlなどがInternet Ex

    Gaucheユーザーリファレンス HTML Help版(chm) - higepon blog
    higepon
    higepon 2006/05/12
    超便利ですよ
  • gasy hira ratan manek 転職 at hiratch.net

    GasyHira Ratan Manek転職求人投資キャッシング金融ローンクレジットカード不動産弁護士

    higepon
    higepon 2006/04/25
    認証をGaucheで。
  • Gauche の拡張ライブラリでクラスを定義する - tomapd == 22%

    Gauche の拡張ライブラリで、自分でクラスを定義する方法、というよりメモとしてのテンプレート。正しい手順か不明だけど、とりあえず動く。 安直だけど、"clos" という名前の拡張ライブラリを書くとして、Scheme で書くと次のような定義になるようにする。 (define-class <person> () ((name :init-value "Anonymous") (age :init-value 20)))拡張ライブラリのヘッダファイル clos.h の宣言。 typedef struct ScmPersonRec { SCM_HEADER; ScmObj name; int age; } ScmPerson; SCM_CLASS_DECL(Scm_PersonClass); #define SCM_CLASS_PERSON (&Scm_PersonClass) #define

    Gauche の拡張ライブラリでクラスを定義する - tomapd == 22%
  • kahuaセミナー感想 - emeitch's blog

    だいぶ経っちゃったけど、kahuaセミナーの感想。 まず、反省点。 ・対象がWebアプリケーション開発経験者だったのに、掲示板くらいしか作ったことがない、超Webアプリ初心者が行って申しわけありません。おかげでapacheのパーミッション設定関係で山下さんはじめ、いろんな方々のお世話に。これで、前日に発表資料見てないで、apacheが必要なことを気づかず、インストール済でセミナー受けてなかったらと思うと...。 んで、感想。 ・会場のタイムインターメディアさんが入ってるビルの1階がオライリーだったのにびっくり。 ・Gaucheインストール、Gauche開発環境設定、Schemeの言語説明、kahuaのインストール、apacheの設定、kahuaの開発環境設定、kahuaの説明、kahuaでAjaxと、一日で説明するには内容が濃密。途中、やりきれない内容沢山。まぁ、あそこに来てたメンバーなら

    kahuaセミナー感想 - emeitch's blog
  • 1