[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 06/16 14:44 / Filesize : 148 KB / Number-of Response : 581
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part27



1 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 10:15:31 ]
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

■過去スレ
 Part26: ttp://pc12.2ch.net/test/read.cgi/tech/1240567959/
 Part25: ttp://pc12.2ch.net/test/read.cgi/tech/1231856193/
 Part24: ttp://pc11.2ch.net/test/read.cgi/tech/1224939205/
 Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/
 Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/
 Part21: ttp://pc11.2ch.net/test/read.cgi/tech/1207300697/
 Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/
 Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
 Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
 Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
 Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
 Part15: ttp://pc11.2ch.net/test/read.cgi/tech/1151025773/
 Part14: ttp://pc11.2ch.net/test/read.cgi/tech/1132275726/
 Part13: ttp://pc11.2ch.net/test/read.cgi/tech/1115901841/
 Part12: ttp://pc11.2ch.net/test/read.cgi/tech/1100229366/
 Part11: ttp://pc11.2ch.net/test/read.cgi/tech/1091456033/
 Part10: ttp://pc11.2ch.net/test/read.cgi/tech/1075630259/
 Part09: ttp://pc11.2ch.net/test/read.cgi/tech/1069594582/
 Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
 Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
 Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
 Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
 Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
 Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
 Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
 Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html

■テンプレート置き場
 ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)

152 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:07:22 ]
>>146
マクロ展開は普通は評価の前に行なわれる。
要するにマクロ展開と関数の評価は異なるレイヤで行なわれる。

もしマクロを第一級に格上げしたとしたら、
set! されたときに展開しなおしとか必要になって、
付随する様々な挙動が破綻してわけわかんなくなる。
不都合とかいうレベルの話じゃねーよ。 論外だろ。

まぁ、そういう Lisp があってもいいかとは思うけど、
Scheme では無理だし、パフォーマンス的にはかなり不利になるはず。

153 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:35:45 ]
C++テンプレートのコンパイル時実行のようなもの

154 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:45:44 ]
set! されたときにインライン展開しなおしとか定数伝播しなおしとか必要になって
のようなもの

155 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:18:42 ]
人工彼女の話と聞いてすっ飛んで参りました、ハイ。

156 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:38:14 ]
emacs23リリースされたけどlisperには関係ないのかな

157 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:42:10 ]
javascriptでもマクロ以外はlispと同じようなことできるの?

158 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:03:01 ]
人工彼女よりも生身の彼女の方がエキサイティングで楽しいよ。(笑)

ところでウィノグラードの積木をする少女のプログラムは今のパソコンの
性能なら十分に動くと思うのだけど、誰か動かしてないかな?
マイクロプランナーってPrologみたいなもの?

159 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:02:22 ]
>>157
JavaScript とか Ruby を「広義のLisp」に含めようとする人すらいるが、
構文木を操作することを可能にしたマクロと、マクロの大前提であるS式こそが Lisp の本質だと思う。
「マクロ以外は」と言ってしまうとせいぜいがクロージャとリスト操作くらいだろ?
JavaScript でもそれらを扱えるのは確かだが、
最も重要なマクロを除いてしまった上で「同じようなこと」が出来たからって…

160 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:08:16 ]
昔lisp好きのruby信者だったけど、実際のものをschemeやらで書くようになって、
今までruby信者だったことを恥じたね。
バカみたいにシンタックス増やしてその議論に時間裂いて如何に信者を増やすかが、その人たちの言う言語なんだと...
carとcdr、"(" と ")" 、applyとeval、言語のシンタックスが提供するのなんてこの2極で十分だ。(極論だけど)
言語作者のエゴが作る多すぎるルールは戒律になって自由に対してのしかかってくるだけだよ。

(この戯言で怒った人はごめんね☆)



161 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:13:51 ]
さらに進んでSKIで十分と言えるようになれば一人前

162 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:18:28 ]
>>152
Guileはそういうとここだわってますよね
> (define (hoge) (begin (display 'function) (newline)))
> (define (foo) (hoge))
> (foo)
function
> (define-macro (hoge) '(begin (display 'macro) (newline)))
> (foo)
macro

親処理系のSCMで動かないこのコードがGuileで動くってことはわざわざ追加された仕様なんでしょうね

163 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:26:59 ]
それはただの処理系依存の話
gaucheの最適化レベルが低いってだけ

164 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:31:06 ]
Guileです

165 名前:160 mailto:sage [2009/08/04(火) 20:37:43 ]
>>161
SKIってSKIコンビネータなんちゃらってやつ?
とにかく読み漁ってみるわ。
まじで情報サンクス。
やっと計算云々のコアにたどり着けるような気がする...
今まで童貞で良かったわ。きっとセックスより気持ち良いに違いない。

166 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:49:07 ]
>>165
全然違うものですがPostScriptとSECD仮想機械も面白いものですよ。
PostScriptにはつい最近興味を持ち始めたのですが
Forthよりコッチ側(関数的プログラミングとか)に近くて
末尾呼び出しの最適化もされるし驚きでした。
(ループが再帰で書ける!)
SECD仮想機械はS式ベースの仮想機械で
これをベースにしたScheme処理系もあるみたいです。

167 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:54:13 ]
センスのあるやつはコードを書く
センスの無いバカは理論をやる
それが計算機の世界

168 名前:デフォルトの名無しさん [2009/08/04(火) 21:05:47 ]
いまはなきLispMe

169 名前:デフォルトの名無しさん [2009/08/04(火) 21:12:14 ]
>>167
○ センスの無いバカは理論「だけ」をやる

170 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:31:27 ]
理論をまったく知らないでコードを書くのは例外なく馬鹿



171 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:27:40 ]
>>166
かなり面白そう。
PostScriptは名前だけ知ってたんですが、初めて見ました。
というか、S式 -> ps とかすごく簡単に書けそうでプロッターとしていけますね。
SECD仮想機械は機械的(物理的?)な観点から見れそうなので、今までlisp系を観念的にしか見てなかった自分としては、今までとは対極の見方が出来そうです。
情報サンクスです。

172 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:58:28 ]
>>171
PostScript で Lisp 書いたり PostScript で書いた Lisp で Lisp を書いた人もいる。
blog.bugyo.tk/lyrical/2008/01/-o-lisppostscriptlisp.html

173 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:04:20 ]
素直にCをベースにしたscheme処理系を見ればいいのに
据え膳食わぬは男の恥

174 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:09:50 ]
すいません、下のスレの
pc12.2ch.net/test/read.cgi/tech/1233143342/

(((() #0="a" #0# #0#) (#1="b" (#1# (#1#) . #2="c") . #2#) . #2#))

この#0#とかの表記がよく判りません。
自己参照してるっぽいのは判るんですが、
どこかに読み方の説明ないですかね。
#0=と#0#は違うのかな?

175 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:22:09 ]
>>174
読み方の説明ならこれか
www.lispworks.com/documentation/HyperSpec/Body/02_dho.htm
www.lispworks.com/documentation/HyperSpec/Body/02_dhp.htm
これ
srfi.schemers.org/srfi-38/srfi-38.html

176 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:53:47 ]
>>174は文字列に対して適用してますが、↓と意味は違うんですかね?
(((() "a" "a" "a") ("b" ("b" ("b") . "c") . "c") . "c"))
それぞれの文字列がeq?にならないからってことかな?

177 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 08:32:15 ]
>>176
そのとおり。 共有構造を明記できる記法。
見づらいなら write で出力すればよい。

178 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:02:29 ]
LispでLisp処理系が書けるってのはCでCコンパイラが書けるってのとは
違う不思議さがある。ほら吹き男爵のブートストラップの話みたいな。

179 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:17:33 ]
Lispの便利機能(GCとかレキサとかデータ構造とか)の実装抜きで作れるからな

180 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:22:00 ]
マクロをうまく使って作ると面倒なことを一切せずに元のLispと同等の速度で動く



181 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:25:56 ]
>>178
www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/ref96/ref96.html

182 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 22:15:32 ]
>>181
>>178の言ってるのはGCとかの泥臭いところを除外してるって意味だと思われ

183 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 22:16:44 ]
しまった、2時間も遅れてかぶってる、撃つ出し脳


184 名前:ひげぽん ◆Ngzcp/NZpA mailto:sage [2009/08/08(土) 00:04:50 ]
Mosh 0.2.0 をリリースしました。
mosh-scheme.googlecode.com/files/mosh-0.2.0.tar.gz
mosh-scheme.googlecode.com/files/mosh-0.2.0-setup-win32.exe

Mosh は R6RS に準拠した Scheme インタプリタです。
0.2.0 では並列ライブラリなどが追加されています。

リリースの詳細は d.hatena.ne.jp/higepon/20090807/1249655156 をご参照ください。

もし良かったら使ってみてください。

185 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:13:03 ]
おっおっ!

186 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:27:14 ]
>>184
おぉ!
ご苦労様です。

187 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:41:24 ]
キター

188 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:44:34 ]
〜準拠とか、きちんとやろうとする人はすごいなあ

189 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:59:08 ]
moshってシェルとして使えたりするん?

190 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:03:36 ]
>>184
Windows2000でインストーラ使って即実行したら
「mosh.exe - エントリ ポイントが見つかりません
プロシージャ エントリ ポイント freeaddrinfo がダイナミック リンク ライブラリ WS2_32.dll から見つかりませんでした。」
て怒られた



191 名前:ひげぽん ◆Ngzcp/NZpA mailto:sage [2009/08/08(土) 01:11:02 ]
>>185
>>186
>>187
>>188
ありがとうございます!

>>189
まだ常用には向いていないです。
(mosh shell)というライブラリが付属しているのですが
機能が足りないです。

>>190
試していただいてありがとうございます。
申し訳ないです。Windows XP でしか動作確認できていません。
Windows 2000 では使えないWinSock で関数を使ってしまったみたいですね。
取り急ぎバグとして issue 登録しておきます。

192 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:22:17 ]
いちいち宣伝にくるな

193 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:25:41 ]
むしろ歓迎。
正三郎がアフィりに来るのを心待ちにしてる。

194 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:29:56 ]
いちいち宣伝にくるな

195 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:35:33 ]
むしろ歓迎。
Dan the schemer が弾言しにくるのを心待ちにしてる。(^o^)

196 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:37:16 ]
弾とか有り難がっている馬鹿か

197 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:37:45 ]
ひげぽんがlispスレにくるの見たの初めてかも
OS作ろうとか言ってた頃が懐かしいな


198 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:39:53 ]
使い物にならない俺俺Lispがバージョンアップするたびに
宣伝されたらたまったもんじゃない

199 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:42:29 ]
>>196
馬鹿でーす!厨房でーす!

200 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:42:38 ]
バージョン1.0になったら
また来たらいいよ



201 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:43:27 ]
だね

202 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:53:01 ]
規格準拠であるという点一つとっても俺Lispじゃないでしょ
ネット上で公開しているわけだし
ShiroさんのGaucheすらverUPカキコが許されないの?
独自処理系の書き込みばかりになったら(なりそうになったら)スレを分ければいいだけでは?

203 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:55:16 ]
R6なんですよね。大変そうですね。
moshの方向性は何なんでしょうか。
実用?勉強?哲学?それとも胸に付けるラムダのバッジ?

実用 : shiroさん、本当に感謝しています。
勉強 : みんな作ってるよ。俺scheme。
哲学 : arcがやってる。(そもそもこれが目的だったら鼻高々にR6準拠なんて言わないような。)
ラムダバッジ : 食い扶持。金くれIPA。胸に光るは永田町。私は自民党(R6)の議員です。

204 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:57:54 ]
充分に使いものになるレベルだと思う。
細かいバグはまだまだあるけど、基本はしっかりしている。
その細かい部分は多くの環境で使ってみないとなんとも言えないので、
このスレで議論するのは意味があると思う。
思うだけだけど。

ところで --loadpath オプションでは複数のパスをコロンで区切って渡せる?
Windows ではコロンはドライブレターの表記に使う。
コロンに特別な意味があると絶対パスを使えないことになる。
修正要。

205 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:58:30 ]
たった2レスでこの荒れようw
というより一人基地が混じってるだけだが

206 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:03:31 ]
この流れを「荒れ」と思ってしまうあなたも相当2chをわかってない

207 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:06:07 ]
このスレではムキになって人の行為を否定するような人はあまり居ないからね。

208 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:11:28 ]
Gaucheは使いものになるし、
本も出ているし、いちいち宣伝に来ない

209 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:18:16 ]
>>191
ヘッダファイルの中で
#if (_WIN32_WINNT >= 0x0501)
という記述で囲まれて宣言しているので、
マクロ定義次第で同様のことは避けられそう。

210 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:19:05 ]
>>208
何言ってるんだ。宣伝しに来たことあるよ。



211 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:24:12 ]
宣伝っていうかバージョンアップ通知だろ。
このスレ住人で今まで Mosh 知らんかったやつがいるのか?

212 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:25:12 ]
テンプレにも入ってるし。

213 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:31:52 ]
Gauche並に使えるようになったら
通知してくれ

214 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 02:33:37 ]
使えるかどうかはユーザー (つまりはおまいら) が判断することじゃないのけ?

215 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 05:02:19 ]
Mosh ver0.2 (Windows)
エラーメッセージがEmacsで拾えなかった。STDERRへの出力に問題があるのでは?
R6RSだとloadが無いけどどうするの?
竹内関数、かなり速かった。

mosh>(time (tak 12 6 0))

;;1.6406230926513672 real 1.625 user 0.0 sys
12
mosh>

gosh> (time (tak 12 6 0))
;(time (tak 12 6 0))
; real 1.390
; user 1.391
; sys 0.000
12
gosh>

216 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 05:17:43 ]
別に宣伝するのは構わないが、もう少しスレで質問に答えたりすれば
そんなに悪く言う奴もいなくなると思うが。ひげぽん、どうよ?

217 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 05:21:55 ]
ソース公開されているんだから
直してパッチ送れよ
つかえないなあ

218 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 06:04:55 ]
まだオープンソースに幻想抱いてるのか・・

d.hatena.ne.jp/higepon/20090807/1249655156
不具合報告
不具合報告(code.google.com/p/mosh-scheme/issues/list)までお願いします。
もし面倒であれば、ここのコメント欄に書いていただくのでもかまいません。


219 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 06:41:59 ]
また途中で投げ出す可能性が高いからな
今の段階で宣伝されてもうざいだけ

220 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 07:45:26 ]
>>215
0x00 が出力されてるな。
内部的には ucs4 を使ってるとかいう話があったので、
変換がうまくいってないのかも。



221 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 07:58:57 ]
(error "a") だけでも再現する。
(display "a" (standard-error-port)) でもやっぱりおかしい。
stderr への出力全般がダメっぽいな。

222 名前:ひげぽん ◆Ngzcp/NZpA mailto:sage [2009/08/08(土) 11:08:02 ]
>>192
>>194

すみません。

>>198
>>200
R6RS にも準拠したし俺俺Lisp を脱したかなと思って宣伝してみたのですが
不愉快だったらすみません。

>>203
方向性は実用です。ライブラリを増やしたり速度を気にしたりするのも実用を目指してのことです。

>>204
ありがとうございます。そういっていただけると助かります。

> ところで --loadpath オプションでは複数のパスをコロンで区切って渡せる?
はい。使えます。
なるほど。Windows の場合は ; を区切り文字とするように修正します。

>>209
そうですね。
ここに対策が載っていたので修正します。
yanchde.gozaru.jp/winsock2/freeaddrinfo.html

>>213
Gauche 並はまだまだ遠いです。がんばります。


223 名前:ひげぽん ◆Ngzcp/NZpA mailto:sage [2009/08/08(土) 11:09:33 ]
>>215
> エラーメッセージがEmacsで拾えなかった。STDERRへの出力に問題があるのでは?
Windows では標準出力、エラー出力で WriteConsole 関数を使っているのですがそれがまずいのかもしれません。
Emacs は Meadow とかでしょうか?(試してみたいので)

> R6RSだとloadが無いけどどうするの?
REPL から動的にコードをロードしたいという意味でしょうか?
ライブラリ形式で保存しておいて (import library-name) はどうでしょう。

> 竹内関数、かなり速かった。

まだ Gauche より若干遅いですね。がんばります。

> 216
> 別に宣伝するのは構わないが、もう少しスレで質問に答えたりすれば
> そんなに悪く言う奴もいなくなると思うが。ひげぽん、どうよ?

可能な限りがんばります。



224 名前:ひげぽん ◆Ngzcp/NZpA mailto:sage [2009/08/08(土) 11:12:49 ]

>>217
いえバグの内容を指摘してもらえるだけで十分ですよ。

>>219
すみません。
どれくらいの段階になったらよいでしょう?
言語処理系は完成の定義が難しいですよね。

>>220
>>221
ありがとうございます。
内部コードは UCS4 でそれを UTF16 にして WriteConsole に渡しています。
cmd.exe でも出力されていないとかだったらかなりまずいですね。

225 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 12:35:58 ]
>>224
cmd.exe の上ではちゃんと表示される。

>>223
> Emacs は Meadow とかでしょうか?

俺は >>215 じゃないけど、少なくとも GNU Emacs 23.1.1 では再現することを確認した。
具体的には GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600) of 2009-07-30 on SOFT-MJASON

>>215
> R6RSだとloadが無いけどどうするの?

そんなこと言ったらそもそも repl だって R6RS には無いぞ。
Haskell みたいに repl では定義を禁止にしたら意味論の破綻はないかも。
そう考えると R6RS って動的な性質が制限されてて Lisp 系言語っぽくないよね。

とりあえず emacs から使う分にはファイル範囲を全選択して C-c C-r でいいんじゃね?

226 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 12:40:45 ]
>>224
msdn.microsoft.com/ja-jp/library/cc429845.aspx
WriteConsole 関数は、コンソールハンドル以外にリダイレクトされている標準ハンドルを渡すと失敗します。

emacs に限らずリダイレクトしたらダメってことだよな。
使えないなぁ…。

227 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 12:42:27 ]
パッチ作って送れよ。
使えないなぁ…。


228 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 12:54:28 ]
コンパイラが Scheme で書いてあったりするので、
Mosh のコンパイルには Mosh が必要だったり、
環境を構築するのが面倒なんだわ。
今までは Linux とかのまともに Mosh が動く環境で一部の処理をしてから
もちこんだりとか、かなり構造を理解してないとわけわかんなかったけど、
今回は Windows でもそれなりに動くバイナリ提供してくれたんで、
これでコンパイル環境ととのえてみる。

229 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:25:06 ]
configure で gauche の存在をチェックしてるなぁ。
まだ gosh 使ってんの?

230 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:06:19 ]
ブートストラップだろ



231 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:07:06 ]
ところで最近は IRC の #Lisp_Scheme チャンネルが過疎ってるようなんだけど、
ネタが無いのかね。

232 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:07:51 ]
>>230
いや、そこで Mosh 自身を使うもんじゃね?
という意味で。

233 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:28:36 ]
とりあえず動作報告。
おそまきながら mosh(0.2.0) インストール(Mac OS X 10.4.11)。
make test も多分問題ないと思う(8917 tests passed と出た)。

234 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:37:22 ]
Windows だと
Running 1898/1943
まで表示してエラー。
エラーっていうか
Windows が
「問題が発生したため、mosh.exe を終了します。ご不便をおかけして申し訳ありません。」
のダイアログを表示するエラー。
test/ffi.scm の途中でも同様のエラー。
その他はOK。

235 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:44:06 ]
>>232 ブートストラップ的に不可能なんじゃないの?

236 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:46:56 ]
>>235
gauche は gauche 使ってるよ。
svn trunk も常に「最も最近のリリース版」を使ってビルドできるようになってる。

237 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:47:40 ]
(たまにミスってるときもあるけど)

238 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:54:01 ]
>>65,72
遅レスだが、 gauche の define-macro で書いてみた。

(use srfi-1)
(define-macro (curry p . a)
(define (e a)
(define s '(<1> <2> <3> <4> <5> <6> <7> <8> <9>))
(take s (+ 1 (apply max -1
(filter-map
(lambda(p)(list-index (cut eq? p <>) s)) a)))))
(receive (h t) (break (pa$ eq? '<...>) a)
(if (null? t)
`(lambda ,(e a) (,p ,@a))
(let ((r (gensym)))
`(lambda (,@(e a) . ,r)(apply ,p ,@h ,r))))))

最後以外に <...> があった場合のことは考えてない。

239 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:55:08 ]
R6RS でも書いてみた。

(import (rnrs)
(only (srfi :1) take list-index filter-map)
(only (srfi :26) cut))

(define-syntax curry
(lambda(x)
(define (e a)
(define s '(<1> <2> <3> <4> <5> <6> <7> <8> <9>))
(take s (+ 1 (apply max -1
(filter-map
(lambda(p)(list-index (cut eq? p <>) s))
(syntax->datum a))))))
(syntax-case x ()
((k t a ...)
(with-syntax
(((p ...) (datum->syntax #'k (e #'(a ...)))))
#`(lambda (p ... . r)
#,(syntax-case #'(a ...) (<...>)
((a ... <...>) #'(apply t a ... r))
(_ #'(t a ...)))))))))

240 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:58:24 ]
細かいけど手持ちのscheme処理系のプロンプト。
guile> 1
gosh> 1
mosh>1
なんかポリシーがあるのかな。moshだけ空白が無い。



241 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 15:01:59 ]
>>240
Ypsilon と Petite Chez Scheme も空白アリだったぜ!

242 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 15:18:07 ]
VistaにMosh 0.2.0をインストールして、バージョンを調べたら以下のようになりました。
C:\Users\username>mosh -v
Mosh R6RS scheme interpreter, version 0.0.8

こういうものなんですか?

243 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 15:28:29 ]
>>236
gaucheはschemeの実行に必要な部分をschemeで作ってないからできるんじゃないか?

244 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 15:49:24 ]
最初にIEが入ってないとFirefoxをダウンロードできないようなものですね。わかります

245 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 15:55:48 ]
>>243
関係ない。
Gauche のコンパイラ部分は全面的に Scheme で記述されているし、
VM も Scheme で記述されるようになってる部分がある。
VM についてはインストラクションの合成を簡単に記述したいといった
性能向上を目的とした改善が最近のバージョンで有り、
切り替えの際には多少の混乱があったが、
今は VM が変わっても大丈夫なシカケが入っている。
もちろん、ずっと前の初期の Gauche だと話は別だが、
現在は Gauche 自身でブートストラップが完結するようになっている。

246 名前:245 mailto:sage [2009/08/08(土) 16:02:27 ]
この問題についての解説というか作者のメモはここ。
practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aVM%E5%91%BD%E4%BB%A4%E3%82%BB%E3%83%83%E3%83%88%E3%81%AE%E5%A4%89%E6%9B%B4%E3%81%A8%E3%83%93%E3%83%AB%E3%83%89

247 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:09:27 ]
>>239
Mosh でも動いた。

248 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:30:59 ]
>>246
> このプリコンパイルには既にインストールされている、その時点での最新リリースのGaucheを使うことになっている。

ブートストラップの疑問は解決しないように見えるんだが。
俺の理解不足?

249 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:40:48 ]
リリース版は前処理を済ませてから配布される。

250 名前:215 mailto:sage [2009/08/08(土) 17:05:24 ]
>>223

Meadowです。

importを使ってみます。使い方がまだよくわからないもので。

Replでの実行中にCtrl+Cでの中断に反応してこないです。
WindowsのAPIではGenerateConsoleCtrlEventが使われているはずです。
msdn.microsoft.com/ja-jp/library/cc429265.aspx

CTRL_C_EVENT には反応しないのですが、
CTRL_BREAK_EVENT(Ctrl+D)には反応して処理系が強制終了します。

REPLでのプログラムファイルの読み込み、実行、中断がやり易くなるとうれしいです。




251 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 18:09:56 ]
R6RS なマクロのデバッグって何を使うのがいいんだろ
ypsilon には macro-expand があるけど全部展開しちゃうし(macroexpand-1 みたいなのはないみたい
mosh や ikarus にはそういう機能がないっぽい
DrScheme の Macro Stepper が今のところ最有力なのかな

252 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:18:04 ]
LOL売り切れトル






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<148KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef