Emacs, Lispコードいじりに飽きたので、 QuickSilver の文字列ランキングアルゴリズムを用いた Gauche のシンボル補完ライブラリを公開することにしました。http://www.katch.ne.jp/~leque/software/repos/gauche-mode/補完インタフェースの部分には EmacsWiki: Completion UI を利用しています。また、 QuickSilver の文字列ランキングアルゴリズムは qs.el として別ファイルに分けてあるので、これを利用して別の補完ライブラリを書くことも可能です。利用例は gauche-fuzzy.el を参照してください。
LISPUSERLISPMEMOLisp is a programmable programming language. -- John Foderaro Emacs Lisp は (Scheme よりは) Common Lisp に近い、ということかと思います。 以下理由: 真偽: T, NIL で Scheme 族ではない 基本が反復。Schemer が使うとほぼ間違いなく再帰が深過ぎというエラーがでる Lisp-2 : 変数と関数の名前空間が別 (let ((car '(item))) (car car)) => item ダイナミックスコープ (CLはレキシカルスコープとダイナミックスコープ、Schemeは基本レキシカルのみ) マクロが伝統的な defmacro 破壊的操作を恐れない (むしろ推奨)。命名規則も nrevse とか。 伝統的に関数型っぽく書く事を重視しない Comm
Emacs の scheme-mode では、 #\x のような文字リテラルに色がつかないのですが、以下の設定を追加すると色つきにできます。 (add-hook 'scheme-mode-hook (lambda () (add-to-list 'scheme-font-lock-keywords-2 '("#\\\\\\(\\w+\\|.\\)" . font-lock-string-face)) ; 文字 #\x (add-to-list 'scheme-font-lock-keywords-2 '("#\\[.*?\\]" . font-lock-string-face)) ; 文字集合 #[...] (add-to-list 'scheme-font-lock-keywords-2 '("#/\\(.\\|\\\\/\\)*/" . font-lock-string-face)))
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
SICPを読んでゆく上で必要なScheme実行環境についての設定例集です。 なんだか役に立ちそうな事柄を知っていたら誰でも書き込んでいってください。 Scheme処理系(R5RS準拠)とそれぞれの設定 GaucheGaucheは.gauchercというファイルを起動時に読み込む。なのであらかじめ読み込んでおきたいファイルなどがある場合、そのファイルに書き込んでおくと何かと便利。by iwk Mit Scheme TUT Scheme Guile Emacsの設定 viper-modeSchemeはvimよりもEmacsを使うほうが何かと便利であるので普段Vimを使う人であってもEmacsを使う必要が出てくる。しかし、EmacsとVimはなにかと根本的に違うのでフラストレーションがたまりやすい。そのフラストレーションを少し解消するのがviper-mode。EmacsにViのモードのシステムを
id:koguro:20080309:1205012807 で公開されている小黒さんの glint を試してみました。 昨日の Gauche.night で発表されていたのものですがこれを待っていました!。 こんな便利なものを作ってくれ小黒さんに感謝。 何ができるか? glint は Gauche 用に書いたソースコードの syntax チェックをしてくれます。 これと Emacs の flymake (Emacs22 からは標準で付属)を組み合わせるとソースの編集中に syntax エラーが分かります。 インストール Gauche 0.8.13 をあらかじめインストールしておいてください。他のバージョンでは動作しない可能性があるので注意してください。 wget http://homepage.mac.com/naoki.koguro/prog/codecheck/codecheck-0.
最近、とある目的で Jpeg 画像を読むプログラムを書きました。 (はてなのロゴを Jpeg で保存し、青い部分をキャラクタで表示したところです) 難しい部分は Common Lisp のコードなどを参考にしたんですが、いくつか Scheme ならではと思えるテクニックの発見もありました。 今回は、ビットストリームやピクセル毎の色データを生成するのに利用したテクニックをご紹介します。 Jpeg のデコードで難しい工程の一つに、ハフマン符号の読み取り、というのがあります。 Jpeg ファイルの頭の方には、量子化テーブルとかハフマン・テーブルとか、色んなややこしい情報が詰まったヘッダーがあるんですが、それが終わると 0 と 1 の並び (ビットストリーム) が始まります。 実際のデータを、出現頻度の高いものは短く、めったに現れないものは長い符号に対応させる、という方式で圧縮したものです。 この
関数型プログラミングでは、よく「代入は使ってはならない」と言われます。関数型言語の一種である Emacs Lisp を生業とする僕は、この言葉に長年悩まされてきました。代入を使わないで実用的なプログラムを書くことは無理だからです。 もちろん、問題の内容が数学の関数に類似したものなら、代入も副作用もないプログラムを書くことは簡単です。階乗(factorial)のコードは、以下のように奇麗に実装できます。 (defun factorial(n) (if (= n 1) 1 (* n (factorial (1- n))))) しかし、こう書けることと、実際にこう書くかということとは別問題です。 Scheme のように末尾最適化を実装していて、末尾再帰をループに変換してくれるなら、上記を末尾再帰に変換したコードを書くでしょう。 しかし、Emacs Lisp には末尾最適化がありませんから、スタッ
Gauche でテスト作成支援 gca.el - higepon blog gca.el --- utilities for writing Gauche codes - subpop - subtech 自分で公開したことをすっかり忘れていましたが、使ってくださる方がいらっしゃるようなので、2007/11/13版のgca.el(http://www.koguro.net/prog/gca/gca-20071113.tar.gz)を公開します。修正点は以下の通りです。 補完の動作を変更しました。今まで補完対象のシンボルがinfoで見つからなかった場合にdabbrevを実行していましたが、補完の候補に現在のバッファにあるシンボルも含めるようにしました。例えば、ソースコード中で "call-proc" とかいうシンボルを定義していた場合、今までは "call-" まで入力して補完すると "ca
scheme-complete.el is a single function that can be used with any Emacs scheme mode. It provides real-time, lexical-scope aware type inferencing tab-completion for any R5RS scheme, with extensibility for implementation-specific features (currently only Chicken and Gauche are customized). Gauche / Thread: [Gauche-devel] ANN: scheme-complete.el - smart tab completion 実際にEmacsに入れて動かしてみたら、かなり頭のいい補完をして
Make matching parentheses, brackets, etc. blink in Emacs. Works even on ASCII terminals; it brought new life to my Ann Arbor Ambassador, I tell you! Don't use this in XEmacs. XEmacs has blink-paren.el already. Dynamically resize the minibuffer when you're typing in it, so that you can always see everything you type. To enable it, just use the resize-minibuffer-mode command. This program has been p
最近 MP3 のタグを読むプログラムが必要になり、elisp で書こうとしました。が、バイナリ・データの扱いが無理っぽい気がしたので、Scheme で書くことにしました。 一応それは上手くいったんですが、アプリケーション自体は emacs 上に作りたかったため、Scheme プログラムと elisp を橋渡しする仕組みが新たに必要となりました。 たくさんの MP3 ファイルを扱うことを想定しているため、プログラムをサブプロセスとして常駐させる、とか、Scheme シェルに elisp で関数を打ち込む、といったことも考えたんですが、考慮の末、スレッドを使う方法を選びました。 まず、Scheme プログラム側を TCP サーバーとして実装し直します。そして、Scheme シェル (emacs の inferior-scheme または run-scheme モード) 上でスレッドとして走らせ
Documents Authors Tables Log in Sign up MetaCart DMCA Donate Documents: Advanced Search Include Citations Authors: Advanced Search Include Citations Tables: Account Home Profile Collections Tags Monitoring Submissions Login Not Registered? Create an account. Username Password Forgot your username or password? Powered by: About CiteSeerX Submit and Index Documents Privacy Policy Help Data Source Co
Quack enhances Emacs support for Racket and Scheme. Note: Quack is simple, but still useful. I implemented most of a replacement for Quack, originally called Meow, which does a proper parse in an efficient way, rather than use Regexp kludges, but got interrupted and didn't finish it. For now, if you're using Racket, you probably want to use Greg Hendershott'sracket-mode. You can download file quac
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く