[#2906] DLL for GNU Win32 — WATANABE Hirofumi <watanabe@...>
わたなべです.
5 messages
1997/05/06
[#2910] thread and fork — jkuro@... (Jun Kuroda)
黒田です。
15 messages
1997/05/07
[#2911] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/07
まつもと ゆきひろです.
[#2912] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/07
黒田です。
[#2913] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/07
まつもと ゆきひろです.
[#2914] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/07
黒田です。
[#3023] Re: thread and fork
— jkuro@... (Jun Kuroda)
1997/05/27
黒田です。
[#3025] Re: thread and fork
— matz@... (Yukihiro Matsumoto)
1997/05/28
まつもと ゆきひろです
[#2922] chap 1 draft #2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
7 messages
1997/05/09
[#2936] How to create ext — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
8 messages
1997/05/13
[#2938] Re: How to create ext
— matz@... (Yukihiro Matsumoto)
1997/05/13
まつもと ゆきひろです.
[#2952] [BUG] Dir.glob — sinara@...
原です。おひさしぶりです。
6 messages
1997/05/16
[#2960] dl-malloc — jkuro@... (Jun Kuroda)
黒田です。
9 messages
1997/05/19
[#2978] Re: [s-lang:00052] Re: Python/Ruby Jed — MAEDA Shugo <shugo@...>
前田です。
6 messages
1997/05/20
[#3005] Matrix — MAEDA Shugo <shugo@...>
前田です。
13 messages
1997/05/22
[#3006] Re: Matrix
— matz@... (Yukihiro Matsumoto)
1997/05/22
まつもと ゆきひろです
[#3026] ruby 1.0-970528 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
9 messages
1997/05/28
[#3027] Re: ruby 1.0-970528 released
— MAEDA Shugo <shugo@...>
1997/05/28
前田です。
[#3031] Re: ruby 1.0-970528 released
— matz@... (Yukihiro Matsumoto)
1997/05/29
まつもと ゆきひろです
[#3028] Can I use non IO object for $stdout? — MAEDA Shugo <shugo@...>
前田です。
7 messages
1997/05/28
[#3030] Re: Can I use non IO object for $stdout?
— matz@... (Yukihiro Matsumoto)
1997/05/29
まつもと ゆきひろです
[#3050] flock (BSD/OS 2.0 i386) — gotoken@... (GOTO Kentaro)
後藤です。
6 messages
1997/05/30
[#3055] ruby 1.0-970530 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
5 messages
1997/05/30
[ruby-list:2978] Re: [s-lang:00052] Re: Python/Ruby Jed
From:
MAEDA Shugo <shugo@...>
Date:
1997-05-20 12:09:08 UTC
List:
ruby-list #2978
前田です。
# ruby-listをCCに入れてます。
# リプライする方はもCCにruby-listを入れていただけるとありがたいです。
On Tue, 20 May 97 11:05:11 +0900,
toyofuku@juice.or.jp <toyofuku@juice.or.jp> wrote:
| 取りあえず動くものが早く欲しい(クラスとかちゃんと
|やってると時間かかりそうな)ので、mainのメソッドという
|のは一時的にと考えています。
それでしたら、たぶんモジュールにしても手間はそんなに変らないと思います。
Cで書くと
VALUE mFoo;
VALUE foo_test_method(VALUE obj)
{
....
}
void init_jedlib()
{
mFoo = rb_define_module("Foo");
rb_define_module_function(mFoo, "test_method", foo_test_method, 0);
}
みたいな感じで、rubyにmoduleとそのmodule functionを登録できますから。
基本的にrubyのクラス、モジュールをCで書くこと自体は簡単です。
|> たとえば、
|> 1. Buffer classを実装して、バッファに対する操作を行なう
|> メソッドを用意する。
|> 2. カレントバッファに対しての操作はmodule functionにして、
|> トップレベルでincludeする。
|> なんてのはどうでしょう?
|> こうすればあるバッファに対する操作を行ないたい場合に
|> カレントバッファを切りかえる必要がなくなりますし、
|
| こんな感じでしょうか。
|(レシーバとかいい加減かもしれませんが、雰囲気だけくんで
|下さい)
|
| yomi = "かんじ"
| # "skk.jisyo"バッファからサーチ
| jisyo = jed.getbuffer("skk.jisyo")
| jisyo.bol_fsearch(yomi + " ")
| jisyo.go_right(yomi.length + 1)
| jisyo.push_mark(); jisyo.eol()
| s = jisyo.bufsubstr()
| kouho = s.split("/") # 変換候補リスト
| insert(kouho[0]) # カレントバッファに第一候補を挿入
そういう感じです。
$current_buffer.insert "test.\n"
と
insert "test.\n"
が同じ動作になるような感じをイメージしてます。
|> test_proc = Proc.new {
|> print "This is a proc object.\n"
|> }
|> みたいにnewメソッドのイテレータブロックをオブジェクト化する
|> わけです。
|
| クロージャは名前しか知らないのですが、ラムダ式みたいなもん
|ですか?
たぶん同じようなものだと思います。
|> それで、Procオブジェクトを
|> regist_key_event("^Xt", test_proc)
|> のようにキーに登録して、キーが押された時にはJed側でテーブル
|> を参照して対応するProcオブジェクトをcallしてやればいいのでは
|> ないかと。
|> でも、やっぱりトップレベルのメソッドをメソッド名で登録した方が
|> 普通っぽくて使いやすいのかなあ。
|> あ、文字列(Stringオブジェクト)の時はメソッド名で解釈して、Proc
|> オブジェクトの時はそのように扱う、なんてこともできそうですね。
|> 変数には型がありませんから、受けとってから解釈すればいい、と。
|
| メソッド名(Lisp ではシンボル?)の方が再定義しやすいとか
|ありませんか。Emacs Lisp の define-key ではシンボルもラムダ式も
|書けるんじゃなかったでしたっけ。
いっそのことinteractiveなメソッドは全部JedCommandというモジュール
のメソッドにするというのはどうでしょう?
def JedCommand.foo
...
end
と定義しといて、
JedCommand.dispatch_key :foo, "^Xt"
でキーを割り当てるわけです。
# もちろんdispatch_keyはあらかじめ定義しておきます。
# ":key"はkeyメソッドのIDです。
でdispatch_keyされた時にJed側でテーブルに登録しといて、
キーが押された時には
rb_funcall(mJedCommand, id);
すれば良いのではないかと。
M-xとかの時の補完リストを作るのにJedCommandのメソッドを
列挙できたら便利ですね。
# そういうことできるのでしょうか>まつもとさん
--
前田 修吾 <shugo@po.aianet.ne.jp>