タグ

gaucheに関するkoko1000banのブックマーク (62)

  • Island Life - Gaucheで書き捨てツールのtips

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - Gaucheで書き捨てツールのtips
  • Reading Gauche - Mona OS developers Wiki

    列挙体名がない列挙体変数は Reading Gauche/gauche/vm.h/SCM_ERROR_BEING_HANDLED のような書き方でいいでしょうか。 -- ココサブ 2007-09-27 (木) 23:26:32 はい。良いと思います。#define と同じような扱いですね。 -- ひげぽん 2007-09-28 (金) 00:43:20 週末に合宿に出ていた間の分のcatch-up中です。struct HogeHogeRef は HogeHoge のページに記載、という風になってきたようなので従います。その方が手繰りやすいですし。既にポストされたstruct関連ページのリンクや内容も適宜修正します。 -- naoya_t 2007-09-25 (火) 14:46:08 ReadingGaucheの階層構造でsrcを省略してしまっていたために、srcと同じ階層になるgcなどの

  • Gaucheで継続と例外の実行時間を比較してみた - かきにっき

    継続と例外をそれぞれ大域脱出に使って,実行時間を比較してみた.3回計測して中央値をとった. $ gosh -V Gauche scheme interpreter, version 0.8.14 [utf-8,pthreads]まず,最も単純な例. (use srfi-42) (time (do-ec (: i 0 100000) (call/cc (lambda (cont) (cont i))))) (use srfi-42) (time (do-ec (: i 0 100000) (guard (e (else e)) (raise i)))) $ gosh callcc.scm ;(time (do-ec (: i 0 100000) (call/cc (lambda (cont) (cont i))))) ; real 0.191 ; user 0.190 ; sys 0.010

    Gaucheで継続と例外の実行時間を比較してみた - かきにっき
  • 2010-09-22

    個人用のスクリプトを書く際には、便利なライブラリが全てuseされていると嬉しい。 (gauche.experimental.*は、これをuseするのが億劫になり使わないことが度々) 今までは逐一利用したいライブラリをuseしてきたけれど…面倒くさい。 特に他人と共有しようとするスクリプトでなければ、もっとわがままに振る舞っても良いのではないかと思った。 幸いgoshは-lオプションで事前に読み込むファイルを設定できる。 個人的な処理を行う際に起動するgoshコマンドをgosh-exとして作ってみた。 行う手順は以下のとおり ~/.gosh-ex作成 gosh-ex コマンドを作成 .gosh-ex useしておきたいライブラリなどをuseするなどする。 (use gauche.experimental.lamb) (use gauche.experimental.ref) (use gau

    2010-09-22
  • 2006-06-03

    昨日のエントリに Rui さんからコメントを頂きました。ありがとうございます。 私もなんだか同じイメージを持ってます。静的スコープでオブジェクトの寿命が永遠(無限エクステント)というのがまず初めにあって、その結果クロージャがあるという印象。 私が漠然と感じているクロージャへの解釈を、一言で表現されている様に思いました。 ここで無限エクステントに触れられていますが、実は私も、先のエントリを書いたとき、クロージャを副次的に作り出している仕様の一つとして、無限 (実装上は有限になるのでしょうが) エクステントを挙げようとは思ったのです。 しかし、レキシカルスコープとブロックの階層化 (手続きをトップレベル以外でも定義可能とか、lambda はどこでも書けるとか) を挙げることで、必然的に無限エクステントが求められることになると考えて、そちらを優先したのでした。 そして、その考えが、 例えば、レキ

    2006-06-03
  • クロージャについて少し考えてみました。 - Teny's Log

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

    クロージャについて少し考えてみました。 - Teny's Log
  • 「LISPにはscanlに該当する関数ってあるんでしょうか?」

    指名ktkr!!力不足ですが、せっかくですので。 Haskellのscanl関数でフィボナッチ。 - このブログは証明できない。 ところで、LISPにはscanlに該当する関数ってあるんでしょうか? > valvallowさん正直わかりません、知りません、すみません。。Haskell 読めませんが、fold っぽいですね。取りあえず確認がてら同じようなものをでっち上げてみます。遅延評価でもなく Gauche 依存ですけれども。以下コード。 非常にカッコ悪いですね・・・。なんでこんなに難しそうになるわけ・・・。 素直に named-let で書いた方がよかったみたいです。 きっと R5RS の範囲の Scheme にはないんじゃないでしょうか。たぶん R6RS にも。srfi か Common Lisp にはあるかも?教えてエロい人! 追記そうか。fold2 で書くにしても、こうすれば re

    「LISPにはscanlに該当する関数ってあるんでしょうか?」
  • Island Life - Gaucheにdocstringが無い理由

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - Gaucheにdocstringが無い理由
  • はてなブログ | 無料ブログを作成しよう

    うめぇヨーグルトソースでもいかがですか。個人差にもよりますが。もしよろしければ。 お久しぶりです。 最近うんめぇ〜と思ってるヨーグルトソースがあるので、書いていこうと思います。 ヨーグルトとハーブ類をもりもり使うので、そういうのがべられない方にはうんめぇソースではないです。ごめんなさい…。もしよろしければお茶だけも…旦~ 【用意する…

    はてなブログ | 無料ブログを作成しよう
  • GitHub - shirok/Gauche-net-twitter: Twitter API access library for Gauche

    This module provides an interface to Twitter API using OAuth authentication. Step by step: Install the package. From tarball: $ gauche-package install [-S root] Gauche-net-twitter-1.0.tgz From source: $ git clone git://github.com/mhayashi1120/Gauche-net-twitter.git $ cd Gauche-net-twitter $ ./DIST gen $ ./configure $ make $ make -s check $ [sudo] make install ('-S root' option or 'sudo' may be req

    GitHub - shirok/Gauche-net-twitter: Twitter API access library for Gauche
  • はてなブログ | 無料ブログを作成しよう

    うまくいかない日に仕込むラペ 「あぁ、今日のわたしダメダメだ…」 そういう日は何かで取り返したくなる。長々と夜更かししてを読んだり、刺繍をしたり…日中の自分のミスを取り戻すが如く、意味のあることをしたくなるのです。 うまくいかなかった日のわたしの最近のリベンジ方法。美味しいラペを…

    はてなブログ | 無料ブログを作成しよう
  • はてなブログ | 無料ブログを作成しよう

    牛乳とドーナツ 冷蔵庫で冷やされパキパキに固まった砂糖が鱗みたいにまとわりついているドーナツを取り出すと、マグカップに牛乳を注ぎ、少し時間を置く。 読みかけたのことか、はたまた別のことか、何かを考えながら惰性でドーナツをべてしまい、それを牛乳で流し込むのを忘れた…

    はてなブログ | 無料ブログを作成しよう
  • Scheme処理系 Gauche の最適化まとめ前編 - higepon blog

    shiro さんが開発されている Scheme 処理系 Gauche 0.8.12 の最適化処理を勉強のためにまとめました。 よく Gauche のコードは宝の山だと聞きますが、その一端を分かってもらえるとうれしいです。 基的にGaucheのコードのコメントをまとめただけです。 Scheme のソースコードと簡単な英語が読める人はこのまとめを読むより src/compile.scm を直接読んだ方が正確に理解できると思います。 前提1 コンパイルと実行の流れ Gauche はスタックマシン型の仮想マシンでコードを実行します。 そのため Scheme のコードはスタックマシンで実行可能なコードにコンパイルされます。 つまり Scheme のコード →(コンパイル) マシンコード →(実行) 結果 という流れでコードが実行されることになります。 今回取り上げる、最適化は上の流れの「コンパイル

    Scheme処理系 Gauche の最適化まとめ前編 - higepon blog
  • Scheme処理系 Gauche の最適化まとめ後編 - higepon blog

    昨日の続きです。クロージャとcallの最適化。 クロージャは lambda、call は手続きの呼び出しのことです。 ((lambda (...) ...) arg ...) 呼び出される手続きが、lambda 式の場合。この呼び出し自体を let に変換する事が出来ます。 ($call ($lambda .. (LVar ...) Body) Arg ...) => ($let (LVar ...) (Arg ...) Body) この lambda がここでしか使われていないことが文脈的に保証されていることが重要です。(ということが後の方のクロージャ最適化を見ると分かります。) ちなみにこの変換が意味をなすのは クロージャ生成コスト + call のコスト > let のコスト という関係が Gauche VM において成り立つからです。 クロージャ最適化 クロージャ最適化の手前の時点

    Scheme処理系 Gauche の最適化まとめ後編 - higepon blog
  • naoya_t:コンビネータパーサで遊んでみる

    先日ふつケルを読み終えて、こういうのSchemeで作れないかな、とか思ったり思わなかったりしていたところに、 Ruiさんが Gauche 用のコンビネータパーサを作ってくれた ので早速使ってみることにした。 MeCab の出力をパースしてみよう MeCab は ゴーシュは町の活動写真館でセロを弾く係りでした。 のような日語文を ゴーシュ 名詞,一般,*,*,*,*,* は 助詞,係助詞,*,*,*,*,は,ハ,ワ 町 名詞,一般,*,*,*,*,町,マチ,マチ の 助詞,連体化,*,*,*,*,の,ノ,ノ 活動 名詞,サ変接続,*,*,*,*,活動,カツドウ,カツドー 写真 名詞,一般,*,*,*,*,写真,シャシン,シャシン 館 名詞,接尾,一般,*,*,*,館,カン,カン で 助詞,格助詞,一般,*,*,*,で,デ,デ セロ 名詞,一般,*,*,*,*,セロ,セロ,セロ を 助詞,格

    naoya_t:コンビネータパーサで遊んでみる
  • Top (Gauche Users’ Reference)

  • Greenbear Diary - GaucheでHTTPサーバを書いてみる , GaucheでHTTP , GaucheでHTTP(3) , GaucheでHTTP(4)

    ■ [scheme] GaucheでHTTPサーバを書いてみる GaucheでCGIを書いてみたい。 けどこのマシンはWindowsだなぁ。 適当にHTTPサーバを拾ってくるって手もあるけど、せっかくだからGaucheで書いてみるか。 (GaucheでHTTPサーバを書くためのライブラリ*1を探したんだけど、見つからず) というわけで。 とりあえずリファレンスを眺める。www.cgiはCGIを書くためのものだから違うな。rfc.httpはHTTP「クライアント」って書いてあるから違うな。うーん、gauche.net使って頑張るのか。 高レベルインターフェイスにHTTP「クライアント」の例はあるな。サーバは…そうか、bindとかlistenとかするのか。実習でやったなぁ。 socket(),bind(),listen(),accept(),read/write/send/recv(),clo

    Greenbear Diary - GaucheでHTTPサーバを書いてみる , GaucheでHTTP , GaucheでHTTP(3) , GaucheでHTTP(4)
  • Lingr:まとめ

    Gaucheの部屋のまとめです。WebベースのチャットサービスLingrを使っています。 2006-11-12 (Gauche 0.8.8リリース、Sumibi.orgの中の話)2006-11-11 (Gauche 0.8.8リリース最終段階)2006-11-10 (Gauche 0.1、one-liner)2006-11-09 (Schemeのダメなところ、雑談)2006-11-08 (quasiquotation)2006-11-07 ("kaze"を抜く、不完全文字列、Kahua)2006-11-05 (Meta Object Protocol)2006-11-04 (OnLisp出版の状況、debug-print、Gauche 0.8.8)2006-11-03 (シェル、Scheme式を評価するC API、健全なマクロ)2006-11-02 (Binary Hacks、shiroさ

    Lingr:まとめ
  • Gauche のオブジェクトのなかみ - 言語ゲーム

    暇だったので Gauche のマニュアルを読んでいると、めっちゃ面白い事が分かった。特に、Smalltalk みたいなちゃんとしたオブジェクトがある所。今まで lisp はどれも emacs lisp と似たようなもんだと思ってたのでびっくり。そこで、http://squab.no-ip.com:8080/wiki/835 を基に、Gauche のオブジェクトを覗いてみた。 Bank Account まず Gauche のクラスを使って預金口座 を作る。define-class にクラス名と親クラス、そして要素の名前を書く。そして make で新しいインスタンスの作成。gosh 内では、さらに describe (d) を使って中を覗く事が出来る。 gosh> (define-class <bank-account> () (dollars)) <bank-account> gosh> (

    Gauche のオブジェクトのなかみ - 言語ゲーム
  • Gaucheでシェルスクリプト - Homoiconic Days

    最近、Let Over Lambda (LOL) というを読んでます。 Let Over Lambda 作者: Doug Hoyte出版社/メーカー: Lulu.Com発売日: 2008/04/30メディア: ペーパーバック購入: 1人 クリック: 14回この商品を含むブログ (6件) を見る LOLは、On Lispの発展(?)としてLispのマクロに関して書かれたです。まだ半分くらいしか読んでないですが、マクロってこんな使い方もできるのか!と発見も多く、非常に面白いです。 LOLの3章では defmacro/g! というマクロが登場するんですが、これがなかなか便利で楽しいマクロです。defmacro/g!は、普通のdefmacroと同じようにマクロを定義するマクロなんですが、defmacroとの違いはボディに現れる"g!"から始まるシンボルの扱い方にあります。 defmacro/g

    Gaucheでシェルスクリプト - Homoiconic Days