タグ

gaucheに関するnbqx69のブックマーク (20)

  • Gaucheのmoduleとdefine-in-moduleとevalで作るsandbox

    まずはモジュールがどういうものか、いくつか確認してみます。 Gauche ユーザリファレンス: 4.11 モジュール モジュールは、シンボルを束縛へとマップするオブジェクト モジュールは継承することもできます。 既存のモジュールを継承したモジュールに新しい束縛を足してexportすることにより、 既存のモジュールを拡張することができます。新しいモジュールの内部からは、 継承元のモジュールの束縛が(exportされていないものも含め)全て見えます。 (新しく作られるモジュールはデフォルトでgaucheモジュールを継承しています。 新しいモジュールからgaucheの組込み手続き等が使えるのはそのためです)。 モジュールは実行時データ構造です。実行時に任意の名前のモジュールを 手続き的に作成することができます。 Gauche:evalと環境 define-moduleはモジュールに名前を付けるが

    Gaucheのmoduleとdefine-in-moduleとevalで作るsandbox
  • gaucheyライブラリ - Homoiconic Days

    今日はShibuya.lispのHackathonがあったようです。東京には行けなかったんですが、時間中(13:00 - 17:30)は時間をとってリモートで勝手に参加させてもらってました。時間中はひたすらClojureを書いていました。gaucheyという、GaucheにバンドルされたライブラリをClojureへ移植したライブラリを作っていました。 動機 ClojureはJVM上で動くLispなので、Javaのクラスにも簡単にアクセスすることができます。もちろん、Javaの標準ライブラリも使いたい放題です。また、clojure-contribというユーザのコントリビューションライブラリもあり、ClojureやJavaの機能をより便利に使うことができるようになっています。 ところで、ここしばらくClojureを使っているんですが、「Clojureで日常の細々としたスクリプトをサクッと書いて

    gaucheyライブラリ - Homoiconic Days
  • 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
  • Snow LeopardでGaucheがやっと使えるように(using MacPorts) - Keep on moving

    MacBookをSnow LeopardにしてからMacPortsでGaucheを入れられなかったけど一念発起して情報収集。 MacPorts でワクワク UNIX ライフ Part 2 で以下の書き込みを見つけた。 376 :名称未設定:2009/09/25(金) 20:17:48 id:eYDHxIMr0 GaucheってSnowLeopard対応してない? 10.5の時に普通にインストールできた。 10.6にアップグレードしたときport経由でインストールしたやつは全部消してやり直したんだがビルドエラーが出る。 377 :名称未設定:2009/09/26(土) 11:44:53 id:OUN2FKjP0 >>376 64bit(x86_64)だとコンパイルできないようです。こちらでは port install gauche build_arch=i386 としてインストールできました

    Snow LeopardでGaucheがやっと使えるように(using MacPorts) - Keep on moving
  • MacでGauche - チキン煮込みチーズミックス4辛

    ご無沙汰してます。Schemeはあれから全く進んでません。ヽ(´Д`;)ノアゥア つんどくYeah!!!! 6月にMacbook Pro 13インチを買ったので、今更ながらMacでのScheme開発環境構築(Gauche + emacs)に関して覚え書き。 大まかな流れは、 X11のインストール XCodeのインストール MacPortsのインストール Gaucheのインストール emacsのインストール という感じ。 X11のインストール X11の次にインストールする予定のXCodeに必要なものだそうな。 UNIX系のOSでよく聞くX11やら「X」の名のつくものですが、実際よくわからん。 ってことで、インストール方法だけ紹介。Mac OS Xのインストールディスクが必要。 んで、X11を選ぶ XCodeのインストール Apple謹製のIDE。 MacPortsはソースからビルドするみたい

    MacでGauche - チキン煮込みチーズミックス4辛
  • Gaucheでテンプレートエンジンを作る

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 前回「GaucheでRDBプログラミング」に続き、Webプログラミングです。WebアプリケーションやGUIアプリケーションのように、人との対話があるアプリケーションは一般にMVCを採用しています。 MVCとは、計算やデータ処理部分のモデル、表示部分のビュー、全体の流れを制御する部分のコントローラにモジュールを分割して作る技法です。 MVCを採用すると、変更に強いメンテナンス性の高いソフトウェアになるといわれています。実際に、多数のWebアプリケーションフレームワークがMVCを採用しています。 前回のRDBプログラミングはモデル部分の中心になるものでしたが、今回はビューの部分を作っていきましょう。 HTMLの生成 Webアプリケーションでは、Webブラウ

    Gaucheでテンプレートエンジンを作る
  • ちょっと変わったLisp入門 - @IT

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

    ちょっと変わったLisp入門 - @IT
  • Gauche on Quicksilver - 紫ログ

    遅ればせながら昨日からQuicksilverユーザになったのですが、とりあえずQS上でGauche REPLが使えるプラグイン「Gauche Module」を公開します。 ※7/31更新:Gauche.frameworkの差し替え、トリガー指定時に左のパネルのλアイコンを消去、など Shiro KawaiさんによるR5RS準拠のScheme処理系です。 - svn trunkをベースにして作成したGauche.frameworkを使用しています。Gaucheがインストールされていない環境でも(たぶん)動きます。※注1 - 使用しているGaucheアイコンはemeitchさん作のものです。 - ふつうに使う場合・・・ (「.」を入力するなどしてテキストモードで)S式を入力 → evalアクション ↓↓↓ - 評価した結果は入力欄に入ります。(「.」でテキストモードに入るなり、さらにLarge

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • http://homepage.mac.com/naoki.koguro/prog/codecheck/index-j.html

  • Route 477(2008-03-09)

    ■ [biwascheme][event] gauche.gongでLTしました やっぱりSchemeのイベントでデモすると反応が大きくていいなあ,という. スライド 右上の★ボタンを押すとREPLが開いたりするよ.(このためにevalとwrite-to-stringとhtml-escapeを実装するなどした) このプレゼンツール自体もBiwaSchemeで書かれています.(ソース) BiwaSchemeのダウンロードはこちらからどうぞ. ■ [event][scheme] 第2回gauche.nightログ おまけつき 注意 誤字は仕様です 全く見直ししていないため,内容には0個以上の誤りが含まれています.取り扱い注意 「fullでないcontinuation」ってどういうものなのか誰か教えてください 「プログラミングGauche」ができるまで (ログ取れず) 自己紹介 「リリカルLis

    Route 477(2008-03-09)
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
  • 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 のオブジェクトのなかみ - 言語ゲーム
  • Scheme処理系 Gauche の最適化まとめ前編 - higepon blog

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

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

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

    はてなブログ | 無料ブログを作成しよう
  • Karetta|Gaucheプログラミング|「Lisp脳」の謎に迫る - Schemeプログラマの発想

    この原稿の最新版について この原稿に加筆した最新版が書籍「プログラミングGauche」に収録されています。 引用や紹介をされる方はなるべく書籍収録版を参照してください。 他の言語のプログラマがSchemeプログラムを書くとき、 どうしても発想が手続き的(procedural)になりがちです。 LispプログラマやSchemeプログラマの発想は手続き的な発想とはどうも違うらしい、 ということは分かるのですが、具体的に何が違うのでしょうか? ここではこの謎に迫ってみましょう。 実例 例えばこんな例題があります。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 どうしてプログラマに・・・プログラムが書けないのか? (原題: Why

    nbqx69
    nbqx69 2007/05/16
    おもろい!
  • GaucheNight

    WiLiKi, a Wiki engine written in Scheme

    GaucheNight
  • http://alohakun.blog7.fc2.com/blog-entry-602.html

  • Karetta|Gaucheプログラミング(立読み版)|GaucheによるScheme入門

    Gaucheを実際に動かしながら、Scheme言語の基的な文法について学びましょう。Gauche特有であると明示した以外のことがらは他のScheme言語処理系にも共通です。 Scheme言語の文法について覚えることはあまり多くありません。そのすべては50ページほどのScheme言語の仕様書「Revised 5 Report on the Algorithmic Language (通称R5RS)」に書かれています。 予約語はありません すべては式です 式には基式と組み合わせ式があります 式の値を求めることを評価と言います 覚える必要がある構文は5つだけ define quote if set! lambda 他の言語と異なり、Scheme言語に予約語はありません。たとえば上記にあげたdefineをはじめとする5つの名前も再定義してしまうことが可能です。 define、quoteについて

  • LISPのS式でWebアプリを書けるオープンソースのフレームワーク「Kahua 1.0」リリース

    Kahua Projectは12月28日,オープンソースのWebアプリケーション・フレームワークの安定版「Kahua 1.0」をリリースした。Kahuaは,LISP系言語Schemeの処理系であるGaucheで実装されたフレームワークで,日人が中心となって開発している。 Kahuaは,タイムインターメディアと,Gaucheの開発者である川合史朗氏が代表をつとめるScheme Arts L.L.C.が,独立行政法人情報処理推進機構(IPA)の「平成15年度オープンソフトウエア活用基盤整備事業」の委託事業として共同開発している。 セッション・オブジェクト複数回のWebアクセスの間でデータを維持するために,セッション・オブジェクトにデータを明示的に保存する必要がない「継続ベース」機能を備えることが特徴という。 Kahuaで,例えば「Hello Kahua!」と表示するWebページを記述するプロ

    LISPのS式でWebアプリを書けるオープンソースのフレームワーク「Kahua 1.0」リリース
  • 1