Lisp Scheme Part27at TECH
Lisp Scheme Part27 - 暇つぶし2ch128:デフォルトの名無しさん
09/08/03 18:16:04

(define ((cons a b)p)(p a b))
(define (car p)(p (lambda(a b)a)))
(define (car p)(p (lambda(a b)b)))

129:デフォルトの名無しさん
09/08/03 18:24:12
>>128
それそれ。中西先生の本にあった基本5関数の話が崩壊してしまった
気分になるんですよ。

130:デフォルトの名無しさん
09/08/03 18:24:52
それじゃ印字もできないし、「作れる」とは言わない


131:デフォルトの名無しさん
09/08/03 18:56:05
印字する関数を作れば良いだけ

132:デフォルトの名無しさん
09/08/03 18:59:25
じゃあ作れよ
ちなみに「印字する関数」だけじゃ済まなくなるぞ

133:デフォルトの名無しさん
09/08/03 20:29:06
基本5関数っていっても「関数」は5つあればいいけど
QUOTE LAMBDA IF (COND)といった特別式は別に必要なんじゃないかな
5関数とリスト構造だけでチューリング完全なら教えてほしい
自分はかなり考えたけど無理だった
(もっともLAMBDAがあれば基本5関数もIFもいらなくなるけど。QUOTEはいるかな)

134:デフォルトの名無しさん
09/08/03 20:39:37
そりゃラムダ計算がチューリング等価だからなぁ…

135:デフォルトの名無しさん
09/08/03 20:52:44
>>133
マッカーシー先生のLispの最初の論文にはcondが使われているし
基本関数とは別物では?
[ → ; → ; → ]


136:デフォルトの名無しさん
09/08/03 21:37:05
>>133
URLリンク(www-formal.stanford.edu)

137:デフォルトの名無しさん
09/08/03 21:48:37
うん、論文では特別式にあたるものも使われているにもかかわらず
wikiを始め基本5関数"のみ"でチューリング完全と言及されているものも多いんだけど
λ計算を初めて知った時、それだけでチューリング完全になるなんて思いもつかなかった自分には
基本5関数"のみ"ではチューリング完全ではないとは断定できなくて…
チャーチ数とかYコンビネータとか思いつくような人ならアレだけでチューリング完全に仕立て上げられちゃうんじゃないかとも思ったもんで

138:デフォルトの名無しさん
09/08/03 22:22:44
基本5関数のみだったら単に5つの関数でしかないわけで、
そこに合成・再帰の操作を許して得られる関数のクラスがチューリング完全、
という言い方になるんだろうね

139:デフォルトの名無しさん
09/08/03 22:40:47
そうなんだろうけど、λ(lambda)かdefun(label)があればそれだけでチューリング完全なわけで
結局、基本5関数はチューリング完全なλ算法系の上で"Lisp"を構築するプリミティブにすぎないって話になっちゃうんじゃないかな
基本5関数とチューリング完全性は無関係ってことに

140:デフォルトの名無しさん
09/08/03 22:46:35
だからそのLAMBDAやLABELを基本関数で記述している、というのが上の論文の肝でしょ

141:デフォルトの名無しさん
09/08/03 22:58:08
ところで「チューリング完全である」っていう述語はどうやって記述すればいいの?

142:デフォルトの名無しさん
09/08/03 23:02:44
URLリンク(ja.wikipedia.org)
「リスト」が曲者かと

143:デフォルトの名無しさん
09/08/03 23:06:44
うーん記述には特別式を使っているように思えるけどなぁ…

144:デフォルトの名無しさん
09/08/03 23:13:02
URLリンク(lib.store.yahoo.net)

145:デフォルトの名無しさん
09/08/03 23:18:37
condもdefunも使ってるじゃないですか

146:デフォルトの名無しさん
09/08/03 23:27:35
R5RSで,シンボルと通常の値の束縛にはdefineを,シンボルと
マクロの束縛にはdefine-syntaxを,と使い分けるのはなぜ
なんでしょう? たとえば,どちらもdefineでできたとしたら
不都合が起きるような場合はありますか? Common Lispが
手続きとそれ以外の値とを別々のスコープで扱うように,
Schemeではマクロとそれ以外の値とを別々のスコープで扱う
ということ?何を意図しての仕様かがもうひとつわかりません

147:デフォルトの名無しさん
09/08/04 00:11:21
あと5年待てば判るよ

148:厨房
09/08/04 00:56:52
すいません人工知能で彼女作りたいんですけどやっぱ人工知能はLispがいいんでしょうか?
勉強がんばるっす!!

149:デフォルトの名無しさん
09/08/04 01:04:25
人工少女で我慢しなさい

150:デフォルトの名無しさん
09/08/04 01:05:36
>>146
実装を意図しての仕様ですが何か?

151:デフォルトの名無しさん
09/08/04 01:09:20
>>149
厨房には早過ぎるだろ・・・

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

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

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

153:デフォルトの名無しさん
09/08/04 14:35:45
C++テンプレートのコンパイル時実行のようなもの

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

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

156:デフォルトの名無しさん
09/08/04 16:38:14
emacs23リリースされたけどlisperには関係ないのかな

157:デフォルトの名無しさん
09/08/04 16:42:10
javascriptでもマクロ以外はlispと同じようなことできるの?

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

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

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

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

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

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

162:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/04 20:26:59
それはただの処理系依存の話
gaucheの最適化レベルが低いってだけ

164:デフォルトの名無しさん
09/08/04 20:31:06
Guileです

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

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

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

168:デフォルトの名無しさん
09/08/04 21:05:47
いまはなきLispMe

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

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

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

172:デフォルトの名無しさん
09/08/04 22:58:28
>>171
PostScript で Lisp 書いたり PostScript で書いた Lisp で Lisp を書いた人もいる。
URLリンク(blog.bugyo.tk)

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

174:デフォルトの名無しさん
09/08/05 02:09:50
すいません、下のスレの
スレリンク(tech板)

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

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

175:デフォルトの名無しさん
09/08/05 02:22:09
>>174
読み方の説明ならこれか
URLリンク(www.lispworks.com)
URLリンク(www.lispworks.com)
これ
URLリンク(srfi.schemers.org)

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

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

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

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

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

181:デフォルトの名無しさん
09/08/05 20:25:56
>>178
URLリンク(www2.parc.com)

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

183:デフォルトの名無しさん
09/08/05 22:16:44
しまった、2時間も遅れてかぶってる、撃つ出し脳


184:ひげぽん ◆Ngzcp/NZpA
09/08/08 00:04:50
Mosh 0.2.0 をリリースしました。
URLリンク(mosh-scheme.googlecode.com)
URLリンク(mosh-scheme.googlecode.com)

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

リリースの詳細は URLリンク(d.hatena.ne.jp) をご参照ください。

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

185:デフォルトの名無しさん
09/08/08 00:13:03
おっおっ!

186:デフォルトの名無しさん
09/08/08 00:27:14
>>184
おぉ!
ご苦労様です。

187:デフォルトの名無しさん
09/08/08 00:41:24
キター

188:デフォルトの名無しさん
09/08/08 00:44:34
~準拠とか、きちんとやろうとする人はすごいなあ

189:デフォルトの名無しさん
09/08/08 00:59:08
moshってシェルとして使えたりするん?

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

191:ひげぽん ◆Ngzcp/NZpA
09/08/08 01:11:02
>>185
>>186
>>187
>>188
ありがとうございます!

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

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

192:デフォルトの名無しさん
09/08/08 01:22:17
いちいち宣伝にくるな

193:デフォルトの名無しさん
09/08/08 01:25:41
むしろ歓迎。
正三郎がアフィりに来るのを心待ちにしてる。

194:デフォルトの名無しさん
09/08/08 01:29:56
いちいち宣伝にくるな

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

196:デフォルトの名無しさん
09/08/08 01:37:16
弾とか有り難がっている馬鹿か

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


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

199:デフォルトの名無しさん
09/08/08 01:42:29
>>196
馬鹿でーす!厨房でーす!

200:デフォルトの名無しさん
09/08/08 01:42:38
バージョン1.0になったら
また来たらいいよ

201:デフォルトの名無しさん
09/08/08 01:43:27
だね

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

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

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

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

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

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

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

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

208:デフォルトの名無しさん
09/08/08 02:11:28
Gaucheは使いものになるし、
本も出ているし、いちいち宣伝に来ない

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

210:デフォルトの名無しさん
09/08/08 02:19:05
>>208
何言ってるんだ。宣伝しに来たことあるよ。

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

212:デフォルトの名無しさん
09/08/08 02:25:12
テンプレにも入ってるし。

213:デフォルトの名無しさん
09/08/08 02:31:52
Gauche並に使えるようになったら
通知してくれ

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

215:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/08 05:17:43
別に宣伝するのは構わないが、もう少しスレで質問に答えたりすれば
そんなに悪く言う奴もいなくなると思うが。ひげぽん、どうよ?

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

218:デフォルトの名無しさん
09/08/08 06:04:55
まだオープンソースに幻想抱いてるのか・・

URLリンク(d.hatena.ne.jp)
不具合報告
不具合報告(URLリンク(code.google.com))までお願いします。
もし面倒であれば、ここのコメント欄に書いていただくのでもかまいません。


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

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

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

222:ひげぽん ◆Ngzcp/NZpA
09/08/08 11:08:02
>>192
>>194

すみません。

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

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

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

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

>>209
そうですね。
ここに対策が載っていたので修正します。
URLリンク(yanchde.gozaru.jp)

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


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

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

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

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

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

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



224:ひげぽん ◆Ngzcp/NZpA
09/08/08 11:12:49

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

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

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

225:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/08 12:40:45
>>224
URLリンク(msdn.microsoft.com)
WriteConsole 関数は、コンソールハンドル以外にリダイレクトされている標準ハンドルを渡すと失敗します。

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

227:デフォルトの名無しさん
09/08/08 12:42:27
パッチ作って送れよ。
使えないなぁ…。


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

229:デフォルトの名無しさん
09/08/08 13:25:06
configure で gauche の存在をチェックしてるなぁ。
まだ gosh 使ってんの?

230:デフォルトの名無しさん
09/08/08 14:06:19
ブートストラップだろ

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

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

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

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

235:デフォルトの名無しさん
09/08/08 14:44:06
>>232 ブートストラップ的に不可能なんじゃないの?

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

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

238:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/08/08 14:58:24
細かいけど手持ちのscheme処理系のプロンプト。
guile> 1
gosh> 1
mosh>1
なんかポリシーがあるのかな。moshだけ空白が無い。

241:デフォルトの名無しさん
09/08/08 15:01:59
>>240
Ypsilon と Petite Chez Scheme も空白アリだったぜ!

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

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

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

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

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

246:245
09/08/08 16:02:27
この問題についての解説というか作者のメモはここ。
URLリンク(practical-scheme.net)

247:デフォルトの名無しさん
09/08/08 16:09:27
>>239
Mosh でも動いた。

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

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

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

250:215
09/08/08 17:05:24
>>223

Meadowです。

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

Replでの実行中にCtrl+Cでの中断に反応してこないです。
WindowsのAPIではGenerateConsoleCtrlEventが使われているはずです。
URLリンク(msdn.microsoft.com)

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

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


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

252:デフォルトの名無しさん
09/08/08 19:18:04
LOL売り切れトル

253:デフォルトの名無しさん
09/08/08 19:47:56
宣伝はやめてください
おねがいします。

254:デフォルトの名無しさん
09/08/08 19:52:49
売り切れているのを宣伝するか?

255:デフォルトの名無しさん
09/08/08 19:55:27
SICP訳してみてるんだけど、需要ある?

URLリンク(www21.atwiki.jp)

256:デフォルトの名無しさん
09/08/08 19:57:21
宣伝はやめてください
おねがいします。

257:デフォルトの名無しさん
09/08/08 19:58:41
>>255
糞訳じゃなければ

258:デフォルトの名無しさん
09/08/08 20:02:22
>>255
供給が需要を生みます

259:デフォルトの名無しさん
09/08/08 20:26:53
>>255
もっとエキサイティングにたのむ

260:デフォルトの名無しさん
09/08/08 20:29:42
「Scheme and the Art of Programming」
(George Springer and Daniel P. Friedman)

↑こんな易しめな入門書の邦訳があったらいいかも。



261:デフォルトの名無しさん
09/08/08 21:04:03
どなたか、Peter Seibel『実践Common Lisp』をテキストにして、
Windows上でLispを勉強するサイトを作ってください。
お願いします。


262:デフォルトの名無しさん
09/08/08 22:10:34
>>261
いいだしっぺの法則というのがあってだな…

263:デフォルトの名無しさん
09/08/08 22:16:58
勉強する気が本当にあるなら、テキストになるその本買ってきて自分でやれw

264:ひげぽん ◆Ngzcp/NZpA
09/08/08 22:17:02
>>225
> cmd.exe の上ではちゃんと表示される。

確認ありがとうございます。

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

ありがとうございます。詳細情報助かります。

>>226
> URLリンク(msdn.microsoft.com)
> WriteConsole 関数は、コンソールハンドル以外にリダイレクトされている標準ハンドルを渡すと失敗します。

emacs はリダイレクトしているんでしょうか。まだ関連を追い切れていません。

>>228
> これでコンパイル環境ととのえてみる。
お手数おかけします。
Visual C++ 2008 Express Edition で一発コンパイルできますので、もし良かったら
ご利用ください。

>>229
> configure で gauche の存在をチェックしてるなぁ。
> まだ gosh 使ってんの?

う。しまった。存在チェックは不要です。消しておきます。
Mosh 開発者以外は gosh は必要ありません。


265:ひげぽん ◆Ngzcp/NZpA
09/08/08 22:19:23
>>231
> ところで最近は IRC の #Lisp_Scheme チャンネルが過疎ってるようなんだけど、
> ネタが無いのかね。

ネタを提供できてなくてすいません。どうしたらよいですかね。
気軽に発言してもらいたいのですが難しいですね。

>>232
> いや、そこで Mosh 自身を使うもんじゃね?
> という意味で。

すみません。さぼっています。多分 Mosh でもブートストラップできるんですが
vm.scm を Mosh に移植するのが面倒で。

>>233
> とりあえず動作報告。
> おそまきながら mosh(0.2.0) インストール(Mac OS X 10.4.11)。
> make test も多分問題ないと思う(8917 tests passed と出た)。

ありがとうございます。動作報告は実はとてもうれしいのです。

>>234
> Windows だと
> Running 1898/1943
> まで表示してエラー。

FFI のテストが Windows にきちんと対応していないのが原因ですね。
修正します。(FFI以外の動作には支障がないと思います)


266:ひげぽん ◆Ngzcp/NZpA
09/08/08 22:20:12
>>240
>>241
> 細かいけど手持ちのscheme処理系のプロンプト。
> guile> 1
> gosh> 1
> mosh>1
> なんかポリシーがあるのかな。moshだけ空白が無い。

大変良い指摘。ポリシーないのであわせます。

>>242
> Mosh R6RS scheme interpreter, version 0.0.8
> こういうものなんですか?

ありがとうございます。ミスです。修正します。

>>247
> Mosh でも動いた。

やった!

>>250
> Meadowです。

ありがとうございます。

267:ひげぽん ◆Ngzcp/NZpA
09/08/08 22:21:42
> Replでの実行中にCtrl+Cでの中断に反応してこないです。
> WindowsのAPIではGenerateConsoleCtrlEventが使われているはずです。
> URLリンク(msdn.microsoft.com)
> CTRL_C_EVENT には反応しないのですが、
> CTRL_BREAK_EVENT(Ctrl+D)には反応して処理系が強制終了します。

情報ありがとうございます。
Ctrl-D は eof なので対応できているのだと思います。
Ctrl-C も可能な限り対応したいと思います。

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

具体的にイメージされているものはありますでしょうか?
もしくは他の処理系のこの機能をよく利用しているとか。

>>251
> R6RS なマクロのデバッグって何を使うのがいいんだろ

泥臭い方法ですが例えば以下の let1 の展開をデバッグしている場合であれば
(define-syntax let1
(lambda (x)
(syntax-case x ()
[(_ var val body body* ...)
#'(let ([var val]) body body* ...)])))

#' の部分を #'' とすれば展開後の S式が返るので

(display (let1 x 3 x x)) に対して
(let ((x 3)) x x) が表示されるようになります。
というのはどうでしょうか。

268:ひげぽん ◆Ngzcp/NZpA
09/08/08 22:23:20
>>255
> SICP訳してみてるんだけど、需要ある?

おお。がんばっていますね。
新訳は結構需要があるのではないかと思います。

269:234
09/08/08 22:32:18
Mingw でコンパイルしても同じ結果に。
Mingw は想定内なんだろうか?

270:デフォルトの名無しさん
09/08/08 22:37:18
>>255
需要あります。取っ付きやすくなれば、下手に出回ってる難しいという印象なくなるし。

271:デフォルトの名無しさん
09/08/09 00:02:10
>>255
需要あります。ちょっと読んだ限りだと和田訳よりは良いみたいだし。

272:デフォルトの名無しさん
09/08/09 00:19:45
旧訳の「プログラムの構造と実行」でいいじゃん

273:デフォルトの名無しさん
09/08/09 03:03:41
moshのmingw/cygwin担当のおくむらです

>>234 , >>269
これは完全に僕のミスで、FFI.cppのコミット忘れです。。
const char* FFI::lastError()
{
#ifdef _WIN32
return "win32 error";
#else
みたいに何か文字列を返せば落ちなくなります。
テストも通したいときは
gcc -o libffitest.so.1.0 -shared ffitest.c
あたりで一つ。

svnのtrunkはMinGWは4.4.0とCygwin1.7でチェックしてます。
個人的にはCygwinがお勧め。Windows固有のtrickが少ないので。

274:デフォルトの名無しさん
09/08/09 03:35:52
なら積極的に Mingw をチェックしよう。

275:デフォルトの名無しさん
09/08/09 04:51:53
そういうあまりにも環境依存な内容は別の場所でやりなされ

276:デフォルトの名無しさん
09/08/09 05:06:15
どうせ他に話題も無いくせに
自分の居場所を汚されたという気分だけでいちゃもんつける>>275のようなやつ

277:デフォルトの名無しさん
09/08/09 05:28:32
Arcがバージョンアップらしいぞ。俺は使う気もないけど。

278:デフォルトの名無しさん
09/08/09 05:40:45
他に話題あるじゃん
出て行けよ

279:デフォルトの名無しさん
09/08/09 05:43:46
Arcは専用スレあるからね。

280:デフォルトの名無しさん
09/08/09 08:54:39
URLリンク(wiki.fdiary.net)
ここ見れなくね?

281:デフォルトの名無しさん
09/08/09 09:29:37
この人、キチガイ?単なる老害だろ
URLリンク(cl-www.msi.co.jp)

282:デフォルトの名無しさん
09/08/09 11:15:00
>>281
釣りだよ。
そうやって盛り上げてんだよ。

283:デフォルトの名無しさん
09/08/09 11:23:32
読めないオープンソースはオープンソースの意味が無いから
人間が読むために作られた仕様書のほうがましだね

でも凡人が読めるオープンソースも無いわけではないね

284:デフォルトの名無しさん
09/08/09 11:56:45
そういえば TSPL4 出てるね
URLリンク(www.scheme.com)

285:デフォルトの名無しさん
09/08/09 11:57:01
>>281
だからどうした
同意してほしいのか

286:デフォルトの名無しさん
09/08/09 12:01:48
>>282
そんな方法でしか盛り上げられないなら、やっぱり老害だな

>>285
聞いてるだけだが、何か?答える気無いなら糞レスいらないぞ

287:デフォルトの名無しさん
09/08/09 12:04:52
老害を辞書で引いてみたら

288:デフォルトの名無しさん
09/08/09 12:07:49
>>281がキチガイというオチでした

289:デフォルトの名無しさん
09/08/09 12:09:03
聞いてるだけって
自分がキチガイだと教えてもらったら納得するのか?

290:デフォルトの名無しさん
09/08/09 12:09:13
黒田乙

291:デフォルトの名無しさん
09/08/09 13:31:29
夏の風物詩だろ>>281みたいなニワカが沸くの


292:デフォルトの名無しさん
09/08/09 16:20:49
Schemeでマクロはかけないとか言って反論されてた人か

293:デフォルトの名無しさん
09/08/09 16:26:21
まあでも確かに R5RS までだとマクロはいろいろつらかったような
Scheme + define-macro は落とし穴がちょこちょこあるし
syntax-rules だと黒魔術的なことをしないとできないことも多かったし

URLリンク(okmij.org) あたりとか俺には理解不能すぎる

294:デフォルトの名無しさん
09/08/09 16:38:11
以前にもいたね>>281みたいなの

295:デフォルトの名無しさん
09/08/09 18:11:30
冗談でも何でもなく、まさに馬鹿には理解できないレベルの議論だからな。
溢れる自尊心と足りない知性の組み合わせで無根拠に大きく出ちゃう学生さんには、
黒田氏の話は毒。

296:デフォルトの名無しさん
09/08/09 18:13:00
>溢れる自尊心と足りない知性の組み合わせで無根拠に大きく出ちゃう
黒田さんのことですねわかります

297:デフォルトの名無しさん
09/08/09 18:15:45
>>296
つまりそういう反応しか出来ないから
君のレベルでは毒なのw

298:デフォルトの名無しさん
09/08/09 18:20:06
再帰w

299:デフォルトの名無しさん
09/08/09 18:25:43
Common lisp中華思想ですから、
それに迎合出来無い全員に取って毒ですよ
で、迎合できない者を指して「レベルの低い」と称するんですね

300:デフォルトの名無しさん
09/08/09 18:30:54
とまぁ、こういうレベルの人が騒ぐわけです。
わかってなきゃ言えないことを一つも言えないまま、いかに「わかった風な空気」をまとうか。
それがこの人らの書き込みのコンセプト。

301:デフォルトの名無しさん
09/08/09 18:33:30
はいはい、そうやってずっとcommon lispのアンチを増やしてればいいんですよ
レベルの低い信者なんていても仕方がないから合理的ではありますね

302:デフォルトの名無しさん
09/08/09 18:36:23
限界集落みたいな狭い狭いlisp村内で釣りしてどうすんだという気もするが。
釣るなら村外へ向けてするべき。

303:デフォルトの名無しさん
09/08/09 18:42:30
common lispの良いところと悪いところ、Schemeの良いところと悪いところってのが宗教みたいに本当に相容れないからね
煽りの痛さはどっちもどっちなんだけどなぜか両方を受け入れてだからどうしたって言えるレベルの人は少ないよね


304:デフォルトの名無しさん
09/08/09 18:43:18
CommonLisp は何でもアリだからな。
「強い言語」と言えばそう言える。
でも、 CommonLisp に批判的な立場っていうのはその強さが
ある意味で使い難いって言うのが主な主張だろう。

「CommonLisp は強いんだ!」 って言ったって、
そんなことはとっくに承知で、
その上で強さがダメだって言ってるんだよ。

そこんところをもうちょっと掘り下げないと平行線だよな…
なんて思うわけですよ。

305:デフォルトの名無しさん
09/08/09 18:43:23
>>302
村外で釣ってる人ってrubyスレで暴れてるみたいな恥さらしばっかりな気がする


306:デフォルトの名無しさん
09/08/09 18:46:41
通りがかりの低レベラーが横レスしますよ
Schemeって研究あるいは教育用の言語みたいなもんじゃないの?元々は。
Common Lispは実用のために「工学的強度を持った言語」としてうんたらかんたら・・・
目指してる方向が違うんじゃないの。

307:デフォルトの名無しさん
09/08/09 18:58:11
だからどうした
同意してほしいのか

308:デフォルトの名無しさん
09/08/09 18:59:40
何この人^^

309:デフォルトの名無しさん
09/08/09 19:01:06
>>306
おたがいの批判はいわゆる「オヤクソク」であって、
初心者にそれぞれの言語の立場をわかりやすく説明するコントなんだよ。

310:デフォルトの名無しさん
09/08/09 19:13:14
大抵の人の場合仕事で使ってるのはCLでもSchemeでもないから、
論争もまた遊びみたいなもの。さらに言えば仕事で使ってるような言語での
ネタすら遊びでしかないという人は多いだろう。
で、黒田さんはそういう中途半端な人達にLispを語って欲しくない
という事も言っている。とりあえず本気の人も遊びの人も
互いに有益な範囲のみで関わっていれば問題はないだろうよ。

311:デフォルトの名無しさん
09/08/09 19:21:13
>>309
一般的にはそうかもしれない。でもこの場合は違うかな。
初心者とか無能に理解されることを期待してないから、ああいう書き方になる。
いやむしろ、馬鹿が読んだ時に、馬鹿な理屈で馬鹿な誤読をして、馬鹿丸出しの敵になることを
黒田氏は期待してるかもしれない。
馬鹿な味方ほど邪魔なものはないからね(PやRから始まるあの言語の信者を想像してみよう)。

黒田-shoro間では濃い議論になるものが、黒田-ねらー間だと全くそうならない。
熱くなればなるほど、根拠が薄くなり、結論の語気だけが上がる、悲惨極まりない人種が
噛み付いてるだけの、この無様な状況。
つまり、何を言ってるのか理解するところにも達していないわけ。

312:デフォルトの名無しさん
09/08/09 19:26:01
黒田vsShiroさんの議論のレベルに達してないのは自覚してる。
そこまで自惚れてるわけじゃない。
しかし、突き放して、理解させようという努力をしないなら、
ただの見下し厨と変わらないように思うけどなぁ。

313:デフォルトの名無しさん
09/08/09 19:26:11
>>311は「馬鹿な味方」の好例だな。

314:デフォルトの名無しさん
09/08/09 19:30:58
>>311
shoro さんの意見を聞いてみたいですね

315:デフォルトの名無しさん
09/08/09 19:31:40
>>314
本質でないところでこういう揚げ足をとる馬鹿

316:デフォルトの名無しさん
09/08/09 19:32:26
>>315
スルーできない馬鹿

317:デフォルトの名無しさん
09/08/09 19:33:18
>>312
最初から理解できるようなレベルの人以外は
味方になって欲しくないということでしょう
彼等の目標を踏まえればそれ程のフィルターが必要であることは
容易に想像できます。

318:デフォルトの名無しさん
09/08/09 19:33:39
>>316
オマエモナー

319:デフォルトの名無しさん
09/08/09 19:40:21
やっぱlispスレはこうでないとな

320:デフォルトの名無しさん
09/08/09 19:48:17
言語知識ゼロでも構わない感じの空気になると
水を得た魚のように活発になる人が多いのは、
Lispスレでも他のほげ言語スレでも同じ。

321:デフォルトの名無しさん
09/08/09 19:54:01
自転車置き場がうんたらかんたらだっけか?

322:デフォルトの名無しさん
09/08/09 19:56:13
>>313
というその一文が、根拠が薄く、結論の語気だけが上がってる悲惨な人種の
典型的な産物ですね。

323:デフォルトの名無しさん
09/08/09 20:03:15
>>322
必死だな

324:デフォルトの名無しさん
09/08/09 21:13:07
えらい加速してると思ったら・・

>>255
SICPの日本語訳、2章まで読めるとこあるよ
sicp tmuでぐぐれば今3番手に出る
原著読んでて翻訳つらいなって思った練習問題なんかは
この訳でもスキップされてたりするけど、
訳はわかりやすいので参考になれば

325:デフォルトの名無しさん
09/08/09 23:31:44
論争読んだけど、ようするに
R5RSの仕様だと解釈の仕方によってはマクロ作るときに問題があるが、
別の解釈の仕方では問題ないし、問題ないように実装することもできる
しかも、R6RSでは問題ない
ってことだろ
結局Schemeに対する言いがかりに感じた

326:デフォルトの名無しさん
09/08/10 06:29:45
>>325
んで、さらに Schemer の内部では、 R6RS には思想がないとか
syntax-case ごちゃごちゃし過ぎ、 Explicit Renaming とか Syntactic Closures 忘れるな
っていう内ゲバが起こるんですね、わかります

と煽ってみる

327:デフォルトの名無しさん
09/08/10 06:55:03
>>158
スレが別方向に行っちゃってるけど、
Common Lisp / Java 版の SHRDLU っていうのがあるみたい
URLリンク(www.semaphorecorp.com)
PLANNER は CONNIVER と共に Scheme の源流みたいな言語だね(英語版 Wikipedia 参照)

328:158
09/08/10 09:24:57
>>327
ありがとう。
早速、試してみるよ。

329:デフォルトの名無しさん
09/08/10 18:46:49
Connniverってなんて読むの?

330:デフォルトの名無しさん
09/08/10 19:51:56
こんにぼぁー

331:デフォルトの名無しさん
09/08/10 22:59:47
SHRDLUをGCLで動かそうとしたところたくさんあるファイルのうちの
DICTIOというファイルでエラー。単語や意味を教えるファイルらしい。
エラーになるのは
(DEFS \#DIRECTION
FEXPR (LAMBDA (A B) NIL)
NOGOAL T)
という関数。

これをコメントアウトすれば一応動作開始する。でも何を聞いても
「Sorry I don't know.」ばかり。
辞書が不完全だからかな。

332:デフォルトの名無しさん
09/08/11 00:16:47
common lispとschemを並行して勉強するのってこんがらがってやめたほうがいい?

333:デフォルトの名無しさん
09/08/11 00:49:23
やめとけやめとけ

334:デフォルトの名無しさん
09/08/11 00:51:48
>>333
ありがとうございます。じゃあschmeから先に勉強します(^_^)

335:デフォルトの名無しさん
09/08/11 01:57:11
schemもschmeもやめて
common lispにしておけ

336:デフォルトの名無しさん
09/08/11 02:14:42
黒板に書いて遊ぶならSchemeやschmeやschem、ソフトウェアを作るならCommon Lisp。

337:デフォルトの名無しさん
09/08/11 02:51:07
CommonLispで最近出てきた何か面白い処理系ある?

338:デフォルトの名無しさん
09/08/11 04:35:58
ないからクソだね!schemeがいいよ!

339:デフォルトの名無しさん
09/08/11 05:35:06
schemeとschmeとschemではどれがいいんだ?

340:デフォルトの名無しさん
09/08/11 05:36:03
夏休みだなあ

341:デフォルトの名無しさん
09/08/11 06:04:49
みなさん処理系は何をお使いですか?
わたしはGaucheを使っています。
Little Schemerで勉強中

342:デフォルトの名無しさん
09/08/11 06:16:48
GaucheとかPLTとか。
IA-32のSolarisに対応してたらLarceny使うのに。

あとは、IkarusとYpsilonとMosh検討中。
R6RS対応したライブラリが少ないのがネック。
識別子の最初に@使えないからSXMLとかでも問題あるし。

343:デフォルトの名無しさん
09/08/11 06:30:06
Schemeでネイティブコードまでコンパイルするのってstalinだけ?


344:デフォルトの名無しさん
09/08/11 06:39:29
BiglooとかCHICKENとかいろいろ

345:デフォルトの名無しさん
09/08/11 07:40:35
>>343
中間言語としてのC経由なら、Stalin、Bigloo、Chicken、Gambitとか。
直接ネイティブコード吐くのはLarceny、Ikarusとか。
JITでネイティブコードにコンパイルするのはPLT。Ypsilonも開発中。
バイトコードにコンパイルして実行するのはGauche、Mosh、Guileとか。

346:デフォルトの名無しさん
09/08/11 08:42:48
>>345
ありがと
SBCLの様な感じのはIkarusだけみたいだね、試したらめちゃ高速
だけどなぜにバージョンがこんなに小さいんだろう?



347:デフォルトの名無しさん
09/08/11 08:49:46
最適化で評判が高いのがStalin
Chicken は URLリンク(home.pipeline.com) この論文が
提唱した方式を実装したという特徴がある

348:デフォルトの名無しさん
09/08/11 11:59:26
stalin はマクロがなぁ…。
だいたい Scheme でむやみに速度を目指したって仕方がないじゃないかって気がする。
速いにこしたことはないし、そういう選択でやってみたってのは価値があるけど、
Scheme で数値計算をバリバリやるって場面はそんなにない。


349:デフォルトの名無しさん
09/08/11 12:17:25
お前に言われる筋合いもないw

350:デフォルトの名無しさん
09/08/11 12:58:55
Schemeの「速さ」に釣られるのは、C/C++がキライな奴だけだ

351:デフォルトの名無しさん
09/08/11 13:18:50
ちょっとした思いつきなんだが、
(let ((x 1))
(outer-scope
(let ((x 2))
(inner-scope x))))
このときに 1 を返す、つまり inner-scope の内側では outer-scope の外側の束縛を参照
するようなマクロ outer-scope inner-scope を定義してみた。
(define-syntax outer-scope
(lambda(x)
(syntax-case x ()
((k body ...)
(with-syntax
((inner-scope (datum->syntax #'k 'inner-scope))
(k (syntax k)))
#'(let-syntax
((inner-scope
(lambda(x) (syntax-case x ()
((j b (... ...))
#`(begin
#,@(datum->syntax #'k
(syntax->datum #'(b (... ...))))))))))
body ...))))))
未だに datum->syntax の第一引数の意味がよくわからん。
規格には
> (datum->syntax template-id datum)
> template-id はテンプレート識別子であり、datum はデータ値でなければならない。
> この手続きは template-id と同一の文脈情報をもつ datum の構文オブジェクト表現を返す。
> このとき、この構文オブジェクトは template-id が挿入されたのと同時にコードに挿入されたかのようにあつかわれる。
って書いたるんだが、文脈情報って何だ?
自分の中ではスコープだと思って使ってて、だいたい期待する挙動になるみたいなんだが、その理解でいいの?
もうちょっとわかりやすい説明があれば助かる。
拙者は日本人なので英語の文献とか紹介しようとしないで頂ければ助かるでゴザルよ。

352:デフォルトの名無しさん
09/08/11 13:37:29
難しい話題は WiLiKi の方でやれよ

353:デフォルトの名無しさん
09/08/11 13:51:09
これから一週間、
>>351にはdatum->syntaxと一緒に過ごしてもらう!
datum->syntax「えー」

354:デフォルトの名無しさん
09/08/11 15:04:23
>>351
ビューティフルコードの25章はどうだろう

355:デフォルトの名無しさん
09/08/11 16:41:42
maximaで数式計算してtrsanslateでlispとして吐き出して
lispのコードを少し書き換えてstalinで高速実行

356:デフォルトの名無しさん
09/08/11 17:21:44
>>332
SchemeとCommonLispは並行して勉強すると混乱するから
どっちか一方を先にやった方がいいと思うよ。
高階関数の扱いがすっきりしているSchemeの方が理論的
なので萩谷先生の「関数プログラミング」の問題をSchemeで解く
ってのはどう。


357:デフォルトの名無しさん
09/08/11 18:36:38
> SchemeとCommonLispは並行して勉強すると混乱するから
なんで???
俺は、全然平気だったけど


358:デフォルトの名無しさん
09/08/11 18:40:17
並行して勉強するメリットは?

359:デフォルトの名無しさん
09/08/11 18:52:17
>>358
特にないけど、不自由もしなかった
強いて上げるなら、CL はネィティブに落す処理系が多いので
処理系をどう作るかって意味ではとても勉強になった


360:デフォルトの名無しさん
09/08/11 18:59:34
並行するのもそうでないのも一長一短ある。
混乱すると言うが、最初から両方の違いを認識しながらの方が混乱しにくいという見方もある。
それにひとつしか知らないというのは大抵の場合はそのひとつさえ知ってない。
概念が生じるのは「そうでないもの」と区別するからであって、
自然に身につけたものは意外に理解できてなかったりする。
結局のところ、本人の資質にもよるから、意見を聞いたところでムダだよ。
やりたいようにやればいい。

361:デフォルトの名無しさん
09/08/11 19:02:09
黒板に書いて遊ぶならCommon LISP。ソフトウェアを作るならマクロアセンブラ。

362:デフォルトの名無しさん
09/08/11 19:25:07
webアプリ書くなら継続のあるSchemeの方がcommon lispより便利だったりするんでしょうか

363:デフォルトの名無しさん
09/08/11 19:31:06
「Scheme の第一級継続」と「継続渡しスタイル」で言う継続は同じものじゃないよ。
まぁ、違うものとも言えないんだけど、直接的に便利ということはない。

364:デフォルトの名無しさん
09/08/12 00:13:10
>>346
リリースエンジニアリングが終わってるから。

> 2008-12-26: Release 0.0.4 almost final

↑はLaunchpadにあるアナウンスメントだ。
しかし現状での最新の安定版は0.0.3。後は分かるな?

というのは半分冗談だけど、まだ新しい処理系だから、
先端追っかけた方が楽しいというのはある。

365:351
09/08/12 00:46:31
色々と考えたけど、
α変換のルールに干渉するってことかなぁ…
と思った。

366:デフォルトの名無しさん
09/08/12 02:27:20
ちょっと質問。
URLリンク(practical-scheme.net)
のように、scmだけevalの第二引数を取らないのは何故?

367:デフォルトの名無しさん
09/08/12 06:11:00
PLT Scheme の Scribble って使ってる人いる?
よさげに見えるんだけどドキュメントがしっかりしすぎてて読むのがめどい

368:デフォルトの名無しさん
09/08/12 10:24:14
今朝ネットサーフィンしていてふと思ったんだけど、
Lisp系言語のキラーアプリって何だと思う?
Ruby だったら Railsだけど、Lispについて考えてみたら
思い浮かばなかったから意見を聞きたいです。

369:デフォルトの名無しさん
09/08/12 10:37:28
>>368
Emacs。

370:デフォルトの名無しさん
09/08/12 11:01:52
Emacs lisp is not Lisp.

371:デフォルトの名無しさん
09/08/12 11:25:38
>>368
paul graham

372:デフォルトの名無しさん
09/08/12 11:30:29
>>369
まあLispの亜種としてはEmacsがはってんしてるなぁ
>>371
Lispの真実
URLリンク(www.aoky.net)
思い出した
「Paul Graham自身もLispで書かれています。」

373:デフォルトの名無しさん
09/08/12 12:25:04
>>366
複雑な名前空間を持ってるわけじゃないし、
そんなの出来てもしかたないだろう。

374:デフォルトの名無しさん
09/08/12 12:54:54
>>368
Lisp系は無理に大衆化しなくてもいいんじゃない。
悟りを得ようとする人のための孤高の言語。
...というのは半分冗談だけど。
Lispがお金になる状況を作らんと黒田さんに言われちゃうよね。
「Javaで稼いで趣味でSchemeやってるのってどうよ」って。

375:デフォルトの名無しさん
09/08/12 15:50:51
maxima超便利

376:デフォルトの名無しさん
09/08/12 17:01:55
>>374
その昔、Winで稼いでMacにつぎ込むと雑誌に書いて炎上した人がいたのを思い出したぜ

Lispが取っつきにくいのってLispコミュニティーが俺様モード発動しちゃうのと、商用処理系がどうしてもランタイムライセンス必要なところにあるんじゃないの?
組み込み系のLispで成功したのは全部独自実装ばっかりだってのもその影響じゃないのかな?


377:デフォルトの名無しさん
09/08/12 17:22:11
そうだよ
だからみんな俺LISPを作り、それぞれの目指す頂に登ろうとしている

378:デフォルトの名無しさん
09/08/12 17:32:09
バベルの塔崩壊後みたいな状況だな

379:デフォルトの名無しさん
09/08/12 18:04:43
>>373
ダミーでもいいから引数取れよ!ポータビリティが下がるじゃないか!
てことでは?
ファーストクラスの環境を持たない処理系でもシンボルを受け付ける物もありますしね

380:デフォルトの名無しさん
09/08/12 20:01:33
>>368
LISPって40年前からあるんだぜ ?

381:デフォルトの名無しさん
09/08/12 20:20:32
なんでもええけど、Lisp で飯食える環境を作りたいとは思いませんか?


382:デフォルトの名無しさん
09/08/12 20:36:40
そういう話を人に振る奴は他人にやらせてそれにのっかることしか考えてない

383:デフォルトの名無しさん
09/08/12 20:44:07
キラーアプリは、やっぱり >>372 の云う通り、『Paul Graham』じゃないか

384:デフォルトの名無しさん
09/08/12 20:46:23
>>382
なことはないんだよな
個人の範囲で取れる仕事は極力 lisp 系で取ってくるようにしてるし,
実際に, 仕事の 1/3 位は lisp で納品してる.
でも, メンテがどうとかって話になると受注競争にマジで弱い.


385:デフォルトの名無しさん
09/08/12 20:57:56
一瞬、メンテが
メガンテに見えた

386:デフォルトの名無しさん
09/08/12 21:35:58
自分が爆発してまわりにもダメージあたえまくり。
まさにメガンテ

387:デフォルトの名無しさん
09/08/12 22:12:49
メンテが・・・

後進を育てればいい

会社にしてしまえばいい

って事?384が言いたいのは。

388:デフォルトの名無しさん
09/08/12 22:48:43
> 会社にしてしまえばいい

まぁ, それもあるんだが, 現実問題, 1社だけだと致命的に弱いのよ

特定の会社だけに頼りきる状態になると, そこつぶれた場合どうする?
とか考えるだろ, 普通は.

そうゆう意味では, いろんなところが lisp 系で受注取ってくれると
嬉しいかなと………


389:デフォルトの名無しさん
09/08/12 22:55:03
協会とか連合とかそんな感じにならないと駄目なのかな。

390:デフォルトの名無しさん
09/08/12 22:58:49
Lispといったらこれ!っていう処理系ってなんだろうか?

391:デフォルトの名無しさん
09/08/12 23:09:02
>>389
どんな形を取るかは別として,
「lisp 系でやってるのは, 他にも結構あるんで安心できますよ」
ってな事が言いやすい環境がほしいのはたしか


392:デフォルトの名無しさん
09/08/12 23:15:24
>>388
1社だろうが10社だろうが関係ない
「下請け」だから致命的に弱い

393:デフォルトの名無しさん
09/08/12 23:21:30
なるほど、
「まずは自分で仕事作れるようになれ話はそれからだ」
…と

394:ひげぽん ◆Ngzcp/NZpA
09/08/12 23:59:49
Mosh 0.2.0 リリース時にみなさんにご指摘いただいた点を修正しました。

URLリンク(www.monaos.org)

修正した点は
・Windows 上 Emacs において run-scheme でエラーがとれない件(Meadow3 で確認)
・Windows 2000 で freeaddrinfo エラー(対応したつもりですが検証環境がなく直っているか確認できず)
・REPL のスペースを他の処理系にあわせる
・Windows でも Ctrl-c で REPL 終了
・Windows で mosh -V の結果がおかしい
・Windows で mosh -t のテストが FFI 関係でエラーになる
・configure で Gauche チェックやめる
・shebang に '-' が含まれるとエラーになる
・Windows では loadpath の区切り文字を : ではなく ; にする

もし特に問題が見つからなければ 0.2.1 としてリリースしようと思っています。
フィードバックをいただけると大変助かります。

>>368
キラーアプリといって思いつくのは、ポールグレアムが書いた Yahoo!Store 。
でもだいぶ前だし、他の言語で書き直されてしまったので最近ではないですが。

キラーアプリや、キラーアプリが出てくるような環境を作りたいとは思いますね。


395:デフォルトの名無しさん
09/08/13 00:16:24
そう、とにかく必要なのはアプリなんだよ。
Lispが良い絵の具だと言うのなら、それで素晴しい絵を描かなきゃ。
がんばろうぜ。

396:デフォルトの名無しさん
09/08/13 00:30:22
>>394
乙。

gaucheでRails作ってる人いたよね。>キラーアプリ


397:デフォルトの名無しさん
09/08/13 00:40:25
>>396
コンセプトをそのままよそから持ち込むのは Lisp でやることじゃないさ。
あんなのは余興だよ。 キラーと言えるものじゃない。

398:デフォルトの名無しさん
09/08/13 00:44:22
>>394
windows2000で問題なく起動したよ

399:デフォルトの名無しさん
09/08/13 02:12:00
いろいろアプリ作るのは良いんだけど、それを発表したり使ってもらおうとする時って
みんなどうしてるの?
一行のコードからそれこそキラーアプリまでカバーするような、ローチンのハブサイトって無いのかな?
無いならマジで作ろうかな。

400:デフォルトの名無しさん
09/08/13 02:33:54
発表(笑)

401:デフォルトの名無しさん
09/08/13 03:22:40
発狂()

402:デフォルトの名無しさん
09/08/13 04:15:26
ポールグレアムも画家だから、良い絵の具を見極める目は持っているのだろう。
その答えのひとつがCommon Lispだ。Shcemeではない。

403:デフォルトの名無しさん
09/08/13 04:19:39
でもarcの最初の実装は・・

404:デフォルトの名無しさん
09/08/13 04:45:27
マクロが書きにくい、あとは名前空間さえ解決できれば、
ライブラリも仕様を規格化されているなら、
黒田氏の批判はあたらないんじゃない?

後は、好みで、PL/Iが好きならCommon Lisp、Argolが好きならSchemeかな。

405:デフォルトの名無しさん
09/08/13 06:39:54
>>394

STDERRの出力の件、うまく表示されていました。
Meadow、xyzzy、Chezedit-Ntで試しました。

Ctrl+cの件:
>具体的にイメージされているものはありますでしょうか?
petite chez Scheme の動作をイメージしていました。
REPLで計算実行中にCtrl+cで中断し、プロンプトが break> となります。
例えば、(tak 18 9 0) とすると計算が当分、終わりそうもないので
Ctrl+Cで無理やり終わらせるような場合です。

Meadowだと処理系が強制終了しました。
xyzzy,ChezEdit-NTでは Ctrl+C は効いていないようです。

406:デフォルトの名無しさん
09/08/13 06:43:36
>>404
君の批判も当たっているとは思えないけど

407:デフォルトの名無しさん
09/08/13 06:44:28
arcっていいものなの?

408:デフォルトの名無しさん
09/08/13 06:57:20
URLリンク(jfk.2ch.net)

409:デフォルトの名無しさん
09/08/13 18:41:18
>>404
Fortranが好きならCommon Lisp、Pascalが好きならScheme

410:デフォルトの名無しさん
09/08/13 19:50:34
どっちも嫌いな人は?

411:デフォルトの名無しさん
09/08/13 19:51:26
プログラマを辞めたほうがいい

412:デフォルトの名無しさん
09/08/13 19:53:42
Haskellやろうぜ

413:デフォルトの名無しさん
09/08/13 20:07:23
OCamlやろうぜ

414:デフォルトの名無しさん
09/08/13 20:28:29
> そう、とにかく必要なのはアプリなんだよ。
アホがいるw
アプリ支える為にはそれなりのマスが必要


415:デフォルトの名無しさん
09/08/13 20:35:32
Erlang やろうぜ

416:デフォルトの名無しさん
09/08/13 20:36:38
いやいや、Scalaやろうぜ

417:デフォルトの名無しさん
09/08/13 20:36:54
Oz…はやらなくてもいいな

418:ひげぽん ◆Ngzcp/NZpA
09/08/14 00:20:16
>>396
どもども。

>>398
ご確認ありがとうございます。Windows 2000 はまだまだ残っていると思うのでサポートできて良かったです。

>>399
確かに発表の場はないですね。どうするのが良いかな。
小さなものでも発表できるという意味では、URLリンク(gist.github.com) にコードを貼って
このスレで書いたよー。ってつぶやくだけでもいいかも。

>>405
多くの環境で確認いただき恐縮です。
Ctrl-C の件ですが、なるほど納得しました。
その機能をつけることは多分簡単にできるんですが、強く必要だと感じるまでではないので一旦保留とさせてください。

>>415
最近 Erlang 触っていますが良いところもたくさんあると感じます。
影響を受けて Scheme でも match-lambda* を使うようになったり (mosh concurrent) を書いたりしました。


419:デフォルトの名無しさん
09/08/14 00:22:09
>>414
そのマスを生むためにアプリがいるんですね、わかります

420:デフォルトの名無しさん
09/08/14 00:25:46
mosh って repl はユーザーカスタマイズできるようになってるのかな?
よく見てないけど、 gosh みたいなのなら、 Ctrl+C があれば
例外なりシグナルなりを投げて repl で捕捉すればいいので、
そのへんは勝手にやってもらえばいいと思う。
Windows で使うことを考えたらシグナルはよくないかな。

421:デフォルトの名無しさん
09/08/14 01:57:14
モッシュムラムラ

422:デフォルトの名無しさん
09/08/14 03:02:30
R6RSって全く調べてないんだけど(というか調べても多分わからない)
5とどのくらい違うのですか?

423:デフォルトの名無しさん
09/08/14 03:06:27
>>422
URLリンク(practical-scheme.net)
おおざっぱな変更点解説もあるのでここ読め。

424:デフォルトの名無しさん
09/08/14 03:16:38
基本はマクロとライブラリだよな。
あとはそれを成立させるのに必要なことを細かく決めましたって感じ。

大文字小文字の区別だとか Unicode がどうだとかいった実用的な意味での規定もあるけど、
全体にしたらささいなことだと思う。

425:デフォルトの名無しさん
09/08/15 12:56:09
CommonLispの空リストってのは不思議だ。

お盆なもんで般若心経を読んでるんだが
「色即是空」とか「空」が度々現れる。
存在はするのだが空なのだってのは悟りに至らんとわからん。

CommonLispの空リストもアトムだし、リストだし、
否定でもあるし、仏教思想か?

>(atom '())

T

>(listp '())

T

>(eq '() nil)

T

>(null '())

T

>(null nil)

T

426:デフォルトの名無しさん
09/08/15 13:36:50
伝統的なLispでは「空リスト」==「NIL」と決まっているから。
写経だとおもってCONSペアの図とリスト探索を100種類くらい書いてみるといい。
その上で、どうしても空のリストとNILを区別しないと許せないとかなら
Schemeのほうが向いてるかもしれない。

427:デフォルトの名無しさん
09/08/15 14:26:30
> お盆なもんで般若心経を読んでるんだが

そういうことが好きな人ならお盆に限らず読むべし

428:デフォルトの名無しさん
09/08/15 14:29:18
maximaのlistとlispのlistを変換する関数がみつからない
trasnなんとかというファイルをひととおりみてみたけど
らしいものがない

429:デフォルトの名無しさん
09/08/15 16:47:43
maxima !
一緒に日本に帰ろう !

430:デフォルトの名無しさん
09/08/15 16:49:13
maximaや あぁmaximaや maximaや

431:デフォルトの名無しさん
09/08/15 19:19:00
南無maxima

432:デフォルトの名無しさん
09/08/15 19:21:43
歎異抄より
唯円 「念仏唱えてもあんまうれしくない」
親鸞 「じつはおれも」

433:デフォルトの名無しさん
09/08/15 21:41:53
お寺様向けの専用システムにLispは向いてないか?

漢字データベースを基礎とした戒名の生成補助、重複チェック。
檀家の家系図作成、保存。
法事スケジュール調整エキスパートシステム。


434:デフォルトの名無しさん
09/08/15 21:45:23
木魚の音「CONS CONS CONS ……」


435:デフォルトの名無しさん
09/08/15 22:21:42
いんきんの音「(CAR N)」

436:デフォルトの名無しさん
09/08/16 00:06:30
>>434
笑いすぎて鼻にコーラがはいっちゃったじゃないか!


437:デフォルトの名無しさん
09/08/16 16:55:41
こういうcdrらない流れ大好きw

438:デフォルトの名無しさん
09/08/16 17:16:59
急に「みそサウナ」ってことばが頭に浮かんだのですが、
そういったことはどのスレに書けばよいでしょうか。
スレ違いは承知ですが、妥当なのがどこかわからなかったので…
誘導して頂ければ助かります。

439:デフォルトの名無しさん
09/08/16 18:02:23
このスレは君のママじゃないんだから
どこのスレがいいかという質問にふさわしい板でたずねなさいよ。

440:デフォルトの名無しさん
09/08/16 18:06:57
マジレスすると調味料板の味噌スレ

441:デフォルトの名無しさん
09/08/16 23:07:37
>>434から始まって>>438の流れで死んだwww

明日仕事だから風呂はいってヌルわ

442:デフォルトの名無しさん
09/08/17 00:37:20
そこはnilわにしないとw

443:デフォルトの名無しさん
09/08/17 01:25:28
すてきなconsを今夜もたのしむか。

444:デフォルトの名無しさん
09/08/18 08:31:55
URLリンク(www.aoky.net)

↑に書かれてることってホントですか?ここの方々はみんなそんなかんじなんですか?

445:デフォルトの名無しさん
09/08/18 08:43:14
>Lispは非常にシンプルであり、ほんの数分で学ぶことができる。
>私はさっきバスを待っている間に学んだ。
嘘だッ!!

446:デフォルトの名無しさん
09/08/18 08:52:23
>>444
>>445
それ、ネタページだから。

> Paul Graham自身すべてLispで書かれている。


447:デフォルトの名無しさん
09/08/18 09:03:59
なんだかラファティみたいな匂いのする文章だ

448:デフォルトの名無しさん
09/08/18 20:29:58
「色即是空」

(eq 'atom '())

449:デフォルトの名無しさん
09/08/18 20:49:21
(是 (即 色) 空)

450:デフォルトの名無しさん
09/08/18 21:25:36
>>444
マジレスすると、「ここの方々」の5割位はEmacsLispで書かれてるよ

451:デフォルトの名無しさん
09/08/18 21:52:41
確かに一番触ってるLispといわれればemacs lispかもしれない…

452:399
09/08/18 22:41:50
かなり遅レスだけど、
コードとかサイトの発表(笑)の場みたいの作ってみたんだけど、需要ある?

453:デフォルトの名無しさん
09/08/18 22:45:10
>>452
乙。晒して。

454:399
09/08/18 22:46:12
了解、少し待ってて。サーバ設定してくる。

455:デフォルトの名無しさん
09/08/18 22:50:30
テンプレにもあるが、掲示板に書くにはやや長いといった程度のものなら URLリンク(codepad.org) が便利だよ。
本格的なのだと lambdarepos か github かな。

456:デフォルトの名無しさん
09/08/18 23:04:56
codepad.orgはログインしないと24時間で消える糞だから
実行機能はないけどpastebin.comみたいな長く残るところを使ったほうがいい

457:399
09/08/18 23:11:11
なるほどー、結構にたようなのあるなぁ。
(kahua make中)

458:399
09/08/18 23:40:34
>>453
すんません。ちょっとトラブル。完全に動いてから報告して晒しますね。

459:399
09/08/19 03:25:05
動いたので晒し。
URLリンク(202.61.29.82)
しょぼいです。

460:デフォルトの名無しさん
09/08/19 06:45:37
LaunchpadにSchemeライブラリ用のプロジェクトあるよ。

URLリンク(launchpad.net)

Azizとご一緒するのが畏れ多いってのなら、
別にプロジェクト立てて、そっちでやったりもできる。

461:453
09/08/19 11:12:04
>>459
乙。もしかしてこのために徹夜した?
コメントの文字が背景色と同じ黒で読めないので、改善していただけたら嬉しい鴨。

462:399
09/08/19 12:46:16
>>461
サンクス。
>コメントの文字が背景色と同じ黒
ありゃ。おかしいな。できればOSとかブラウザの環境教えていただけませんか?。
本当は背景は全部白しか使ってないはずなので、cssミスったかも。

463:399
09/08/19 14:22:10
>>461
Win(IE)で黒くなるの確認しました。直します。

464:ひげぽん ◆Ngzcp/NZpA
09/08/19 21:03:50
>>399
まずは公開お疲れ様です。

投稿してみました。
投稿が増えてきたら新着を気軽にチェックできるように RSS を
出力してもらえるとうれしいです。

465:ひげぽん ◆Ngzcp/NZpA
09/08/19 21:05:08
あとは貼られたコードをファイルでダウンロードとかもあると良いかも。


466:399
09/08/19 21:18:57
>>464,465
早速ありがとうございます!。
RSSとファイルでダウンロード実装してみます。

467:ひげぽん ◆Ngzcp/NZpA
09/08/19 21:23:01
>>399
ありがとうございます。
無理せず、自分のペースで実装してください~。

468:デフォルトの名無しさん
09/08/20 19:07:13
>>463
背景色は白くなりましたが、「投稿テスト(階乗)」を選ぶと、ヘッダ部分と投稿記事本文が白紙に
見える。セパレータとコメントは正常に表示されている。
セパレータで挟まれた白紙の領域をマウスでドラッグするとヘッダ部分と投稿記事が出てくるから、
IE6との相性が良くないのでしょうね。


469:399
09/08/20 20:15:55
>>468
ありがとうございます。本当に助かります。

>> ヘッダ部分と投稿記事本文が白紙に ... マウスでドラッグするとヘッダ部分と投稿記事が出てくる ...
実はそうなんですよ。すみません。こちらでもまったく同じ状況を再現しているのですが、何分知識不足なもんで、
手を焼いてる状況なんです。こちらのCSSとHTMLのコーディングの不備なのは確かなのでもうちょい試行錯誤してみます。

470:デフォルトの名無しさん
09/08/21 10:29:09
WinでypsilonでSDL使いたいんだけど、開発版はVC++ExpressEditionでコンパイルできない
vdprojがサポートされてないと出るんだけど、なんか回避方法はないかな

471:デフォルトの名無しさん
09/08/21 19:20:05
URLリンク(en.wikipedia.org)

472:デフォルトの名無しさん
09/08/22 05:46:17
XML梅込みでLISPみたいなのできる?
phpみたいに、リスト主導じゃなくてテキスト主導みたいな
書き方ができるといいんじゃないかな

473:デフォルトの名無しさん
09/08/22 05:49:51
いやそれは素直にPHPやれよ
Lispは最強言語だが万能言語じゃねえよ

474:デフォルトの名無しさん
09/08/22 05:51:52
>>473
いあ、テキスト処理とか特定分野での話ね
rubyに何だったか擬似言語があるように

475:デフォルトの名無しさん
09/08/22 06:44:49
俺Lispという万能言語があるじゃないか

476:デフォルトの名無しさん
09/08/22 11:24:33
>>472
escm,aescmが一番近いかも。

477:デフォルトの名無しさん
09/08/22 11:59:42
URLリンク(www.scheme-reports.org)
やっぱr6rsはやりすぎだったってことのなのかねぇ。

478:デフォルトの名無しさん
09/08/22 12:26:43
6はVistaみたいなもん
7に期待しましょう

479:デフォルトの名無しさん
09/08/22 12:35:12
ワロタ

480:デフォルトの名無しさん
09/08/22 18:31:17
LET OVER LAMBDA Edition 1.0
URLリンク(www.amazon.co.jp)
誰か書評書いて

481:デフォルトの名無しさん
09/08/22 21:25:38
>>477
正直、迷走してるようにしか見えない。

482:デフォルトの名無しさん
09/08/22 21:35:38
>>480
この本を手に取ったあなたは、すでにトップ1%のプログラマだと感じるだろう。

483:デフォルトの名無しさん
09/08/22 21:45:19
>>480
読んだが、難しかったよ
CommonLispをある程度知ってないと読めない

ただ、SchemeとCommonLispの違いがよくわかってよかった
Common Lisp派の立場から書かれてる本だけどね

484:デフォルトの名無しさん
09/08/22 21:47:57
あと、480の本で定義されてるdefmacro!は結構使えそうだと思った
それ以外にも使えそうなマクロがあって、結構実用的な本かもしれない
あとは、OnLisp前提なところがあるから、OnLispを先に読むか、
平行して読むといいかも

485:デフォルトの名無しさん
09/08/22 22:06:13
>>480
PG の ANSI Common Lisp と On Lisp を読んだくらいで挑戦してみた Schemer だけど、
最適化まわりでの CL の強力さがよくわかったよ。
マクロ関連は R6RS マクロでも実現できるし、 Schemer でも一読の価値はあると思う。
最終章は Forth もわかってた方が面白いのかなあ、俺はそこで一旦止まってる。

486:デフォルトの名無しさん
09/08/22 23:01:40
俺には無理だった。
唯一!を「バン」って読むということがわかった。

487:デフォルトの名無しさん
09/08/23 09:33:16
付録Bの避けるべき言語って何なの?

488:デフォルトの名無しさん
09/08/23 10:13:18
>>480
最初の4章を online でサラッと目を通してみたが、面白い。
エッセイ感覚で読むのが正しいね。
On Lisp の addendum として読むと知識が深まると思った。
online で pdf が公開されたら全部読もうとおもう。


489:デフォルトの名無しさん
09/08/23 10:27:38
>>487
URLリンク(www.google.com)

490:デフォルトの名無しさん
09/08/23 11:09:07
>>489
PHPのことなん?
Lispの対極ってPascalあたりかと思ってたけど。

491:デフォルトの名無しさん
09/08/23 11:12:59
C# (Blub Central) と Python (Niche Blub) と思ったけど違うの?

492:デフォルトの名無しさん
09/08/23 11:23:24
>>491
what?

493:デフォルトの名無しさん
09/08/23 11:26:48
「例えば、PHPを避ける」ってIPAのネタ文書なのかw

494:デフォルトの名無しさん
09/08/23 11:32:43
「本物のプログラマーはパスカルを使わない」みたいなもんかw

495:デフォルトの名無しさん
09/08/23 11:45:31
>>493
ネタ文書というほどでもない
あれを必要としている人向けにはそこそこ妥当

あれは、プロジェクトチーム内の開発言語をPHP以外に切り替えろという話ではない
そういう言語を使ってるような会社に発注すんのやめとけと言う話
常にPHPで思考している駄目会社というのは相当量存在するからな
あれは実のところ「わざわざPHPで請けるような会社はセキュリティが甘い傾向にある」という話なのだ

496:デフォルトの名無しさん
09/08/23 12:26:52
>>495
世の中、URLリンク(xxx) なページが氾濫している気がするが。
PHP使うにしても拡張子消すくらいのデリカシーのある会社だとokかな。

497:デフォルトの名無しさん
09/08/23 12:29:00
>>495
IPAより直球で酷い事を書いているなwww

498:デフォルトの名無しさん
09/08/23 12:31:49
>>494
「本物のプログラマはFORTRANを使う」と言うのもあるな。

499:デフォルトの名無しさん
09/08/23 12:32:20
*.php なサイトにはどうしてもアタックをし掛けたくなるのは俺だけかな。
とりあえずスクリプトで脆弱性テスト、みたいな。

500:デフォルトの名無しさん
09/08/23 12:35:05
> 「本物のプログラマ」

この表現を使う人間は大抵、実力の無い "プログラマwanna-be" だと思うんだが。
もしそうでなければ、実力に伴わない自尊心を持つ輩。


501:デフォルトの名無しさん
09/08/23 12:38:13
Real Programmer Don't Use Pascal とか、
The Story of Mel: A Real Programmer みたいなネタをきちんと知っていて、
理解してる奴ってのは普通実力のある奴なんだがな。

残念ながら、500が何も知らない奴だとしか思えないな。

502:デフォルトの名無しさん
09/08/23 12:40:25
真の実力ってなにさ

503:デフォルトの名無しさん
09/08/23 12:42:08
「本物のプログラマーはPASCALを使わない 」ってタイトルのエッセイがあって、
そのタイトルだけが独り歩きしているんだよね。


504:デフォルトの名無しさん
09/08/23 12:42:52
>>502
バグを出しても仕様だと言ってうまくエンドユーザを丸め込むスキル。


505:デフォルトの名無しさん
09/08/23 12:48:05
そもそもプログラマに real も fake もないから。

自分が "Real Programmer" だと思っていて、それを他人に
強要したいが為に勝手にそうカテゴライズしたがっているだけ。
Real Programmers don't ...
とか言っても、実際はそれがプラクティカルな場合だってある。
開発時間、ベネフィット、プラクティカリティーによって言語の
書き方だって変わってくる。goto を使用した方が良い場面だってある。

いちいち自分の理想を強要して、勝手に real だか fake だか
言ってる馬鹿は放っておくのが一番。


506:デフォルトの名無しさん
09/08/23 12:48:34
むしろ何%かバグを混入させてメンテを継続する
完全なものは納品しないスキルと言い換えよう

507:デフォルトの名無しさん
09/08/23 13:04:29
>>505
原文嫁
タイトルの印象だけで語る典型だな

508:デフォルトの名無しさん
09/08/23 13:05:49
まさに今ここでもタイトルが独り歩きしてるな。

509:デフォルトの名無しさん
09/08/23 13:06:55
だな

510:デフォルトの名無しさん
09/08/23 13:10:17
Lispって使えるん?趣味の言語なの?

511:デフォルトの名無しさん
09/08/23 13:13:59
>>510
学べばどこかの会社が社員として雇ってくれることをして「使える」と表現するのであれば、使えない言語

512:デフォルトの名無しさん
09/08/23 13:21:34
Why Pascal is not my favorite programming language も読んでおくといいぞ

513:デフォルトの名無しさん
09/08/23 13:33:09
>>510
とりあえず設計や分析の腕は上がる。
それで評価が上がるともかぎらないけど。

514:デフォルトの名無しさん
09/08/23 13:37:57
>>513
> とりあえず設計や分析の腕は上がる。

設計というか「コーディングの」だろ?
設計はピュアなOO言語に成れてないといかん。

515:デフォルトの名無しさん
09/08/23 13:38:02
誰かから給料もらいたいんなら素直にJava勉強しろ

516:デフォルトの名無しさん
09/08/23 13:39:04
またここに馬鹿がいた @ >>515。俺の中で

JAVA厨 = 馬鹿

という方程式が成り立っているが、それは未だに健在だ。


517:デフォルトの名無しさん
09/08/23 13:41:12
>>510
>>516がいる言語です

518:デフォルトの名無しさん
09/08/23 13:42:02
Lispの仕事よりもJavaの仕事の方が圧倒的に多いんだから
>>515はJava厨でもなんでもなく正論だよ。

519:デフォルトの名無しさん
09/08/23 13:42:35
マジレスするとLispとC言語が完璧に理解できていればどの言語も大丈夫
のはず。。

520:デフォルトの名無しさん
09/08/23 13:44:19
>>518
PHPやC++の方が仕事が多いわけだが。
Javaなんて死にかけ言語引き合いに出すなよ。

521:デフォルトの名無しさん
09/08/23 13:46:20
またPHPとかw

522:デフォルトの名無しさん
09/08/23 13:49:21
>>521
Web寄りの話な。
ハードに近ければ近いほどCやC++の仕事が多くなる。
Javaなんて糞は居場所がないんだよね。

523:デフォルトの名無しさん
09/08/23 13:52:50
その居場所の無いクソ言語よりもLispの仕事は少ないだろ。

524:デフォルトの名無しさん
09/08/23 13:53:37
>>514
オブジェクト指向的なアプローチの設計もあれば、
関数プログラミング的なアプローチの設計もある。
どちらがよりフィットするかは、問題領域に依る。
この辺は先人が色々言ってるから詳しくは言及しないけど。

525:デフォルトの名無しさん
09/08/23 13:54:09
アンチJava厨の自演だろこれw 鬱陶しいから去れよw

515 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:38:02

516 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:39:04

517 名前:デフォルトの名無しさん[sage] 投稿日:2009/08/23(日) 13:41:12

526:デフォルトの名無しさん
09/08/23 13:57:31
>>514
関数型は設計などほとんどいらない
小規模なプロジェクト向きだし、そもそも
関数型言語でそれ以上の規模のプロジェクトの
コーディングをすることが少ないと思うんだけど。

中規模-大規模なプロジェクトならOO言語使うでしょ、普通。


527:デフォルトの名無しさん
09/08/23 13:58:08
デジタル大手ゼネコンの下請けの下請けデジドカにはJavaは向いていますな。
中小デジタル土建屋にはJavaはコストがかかり過ぎてむりですわ。

528:デフォルトの名無しさん
09/08/23 15:48:45
さすがlispスレ。lispのプログラミングと関係ない話題になると異様に盛り上がるぜ。

529:デフォルトの名無しさん
09/08/23 16:16:36
Scheme でデバッグするときってどうするのが簡単だろう?
Gauche だと #?= で debug-print を埋め込むのが簡単だけど、
他の処理系で #?= 相当のを埋め込んだり外したりするのは結構面倒臭い。
何か別の方法を考えた方がいいのかなあ。

530:デフォルトの名無しさん
09/08/23 16:26:14
すいません、ちょっと流れに遅れてしまったんですが、>>480の本って
翻訳的にはどうでしょうか?


531:デフォルトの名無しさん
09/08/23 16:44:21
>>530
日本語として意味がわからないような訳文はほぼないと思う
(ちょっと係り受けが曖昧なところはちらほらあった)
URLリンク(hop.timedia.co.jp)
の正誤表を見ると、 typo の指摘くらいしかないからいい方じゃないかなあ

532:デフォルトの名無しさん
09/08/23 17:59:33
>>531
ありがとうございます。

533:デフォルトの名無しさん
09/08/23 18:07:34
>>529
#?=は確かに便利だけど、gauche のエラーメッセージはもうちょっと
情報が欲しい。正直今のままだと辛いよ。

534:デフォルトの名無しさん
09/08/23 18:22:46
MIT Schemeでいいじゃない。

535:デフォルトの名無しさん
09/08/23 20:46:57
>>526
それも一概に言えないんじゃないかなぁ。
Lisp が使われた有名な案件っていうとむしろ大規模だし。
ただ、少数精鋭でやることを前提としないと Lisp は向かない。
人海戦術でやるようなプロジェクトだとやっぱ Java だろうな。

536:デフォルトの名無しさん
09/08/23 20:51:30
CommonLisp には CLOS があってかなり活用されてるってことも考慮しなきゃな。
だいたい CommonLisp は関数型言語と呼ぶにはあんまり関数型って感じでもないし。
Scheme を先にやっちゃうと CommonLisp って滅茶苦茶フリーダムだと思う。

大人数が強調するには制約があって統制がとれる言語じゃないとね。

537:デフォルトの名無しさん
09/08/23 21:08:11
>>536
> CommonLisp は関数型言語と呼ぶにはあんまり関数型って感じでもないし。

CLのどの辺が「関数型」じゃないかを言ってみな。
お前の「関数型」の認識が外れていることを証明してやるから。


538:デフォルトの名無しさん
09/08/23 21:17:17
>>537
一々頭に血を昇らせるなよ。
>>536はCLがマルチパラダイム言語であると言いたかっただけだろ。

539:デフォルトの名無しさん
09/08/23 21:18:24
>>537
Java

540:536
09/08/23 21:39:56
ある程度は関数型的なスタイルが推奨されてもいるみたいだけど、
一般に関数型言語と呼ばれる言語のスタイルと比較すると
破壊的更新を選択肢に含める度合は高い。

CommonLisp の持ち味は関数型ってことよりもマクロだと思うんだよね。
マクロが有用なのは DSL というか勝手なパラダイムを表現できることにあるのは同意してもらえると思う。
つまりマクロは「関数型」というパラダイムを積極的に破る機能とも言える。

言うなれば CommonLisp では関数型的スタイルがデフォルトではあっても、
いくらでも自由な表現が許されていて、しかも機能として一応可能であるというだけでなく
様々なパラダイムを許容する文化的土壌もある。

「思う」ばっかりなので実際にはそうでないところもあるかもしれないけどさ。
CL は非常にフリーダムなのに「関数型」という縛りにこだわってるのはナンセンスじゃないかな。

541:デフォルトの名無しさん
09/08/23 22:05:33
単なる道具だろ、言語なんて。
コンピュータなんて単なる箱だろ、どんなに突き詰めても有限な電気信号でしかないよ。
完璧な観念求めるなら数学やろうよ。


542:デフォルトの名無しさん
09/08/23 22:05:46
>>540
第一段落はSchemeにも当てはまっちゃうからその意見はどうなんだろうと思わざるを得ない。
学術にこだわったのがScheme,実学が良いのだと言うのがCLだって言う言い方の方がまだ納得できる様な気がする。

俺としちゃなんでどっちもいがみ合うんだろうと不思議でしょうがないんだけどね
(emacs vs viみたいであほらしい)


543:デフォルトの名無しさん
09/08/23 22:10:04
例えるならキリスト教とイスラム教でしょう。
どちらも元は同じ。

544:デフォルトの名無しさん
09/08/23 22:14:50
なんだかなー。
>>540を読んで、「本当にこの人マクロを理解できてるのかな?」と疑問に思った。

マクロは実行前にエクスパンドされるコードのエイリアス的な存在。
事実、clコードのコンパイル後にはマクロなどすっかり消えて無くなっている。
関数型のスタイルも破られない。

545:デフォルトの名無しさん
09/08/23 22:17:24
LOLにも書いてあったよな確か。CLは関数型言語ではない。って。

546:デフォルトの名無しさん
09/08/23 22:19:32
>>544
何か誤読してない?
>>540が言ってるのは、一番上のレイヤーの話だと思うんだけど。
副作用のある処理を関数的にラップしたりするのと同じで、あくまでも表現の話。

547:デフォルトの名無しさん
09/08/23 22:20:47
実際のところ、Lisp/Schemeプログラマはどの程度副作用の無いプログラミングを
心がけているの?

548:デフォルトの名無しさん
09/08/23 22:22:26
>>547
可能な限り避けて、使うところはできるだけまとめる。
変なバグに悩まされるの嫌だし。

549:デフォルトの名無しさん
09/08/23 22:22:41
>>547
永続化以外はほとんど使わないな。

550:デフォルトの名無しさん
09/08/23 22:24:39
そもそも、ある言語が「関数型」であるかどうかの判定は、
その言葉の定義によって変わるものなんだから、あまり議論する意味がないんだよね。
例えば、グローバル変数がある言語は関数型ではない、と言ってしまえば、ほとんど
どの言語も関数型ではなくなってしまう。 言語の基本的なプログラミングスタイルで
考慮するならば、cl も scheme も関数型と言えるだろうし。


551:547
09/08/23 22:27:05
>>548 >>549
まあそれが非純粋関数型言語における普通のプログラミングだよな。

552:デフォルトの名無しさん
09/08/23 22:33:24
>>537
血の巡りは悪いのに、血がたぎるのだけは早いんだねw

553:デフォルトの名無しさん
09/08/23 22:35:49
>>552 ad hominem で行くことしかできないのかもしれないけど、駄レスは付けないでね

554:デフォルトの名無しさん
09/08/23 22:36:18
>>552
血の巡りが悪いから一箇所に滞るわけで。それが頭だけどね。

555:デフォルトの名無しさん
09/08/23 22:39:14
人身攻撃(ラテン語: ad hominem)とは

556:デフォルトの名無しさん
09/08/23 22:41:43
俺はad hominem より ad aerarium の方が好きだなぁ

557:デフォルトの名無しさん
09/08/23 22:43:43
>>555
もう、子供なんだから。一人じゃ何もできないのね。

URLリンク(en.wikipedia.org)
An ad hominem argument, also known as argumentum ad hominem (Latin: "argument to
the man" or "argument against the man") consists of replying to an argument or
factual claim by attacking or appealing to a characteristic or belief of the
person making the argument or claim, rather than by addressing the substance of
the argument or producing evidence against the claim.


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch