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


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

Lisp Scheme Part33



1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ]
Common Lisp、SchemeをはじめとするLisp族全般のスレです

■前スレ
Lisp Scheme Part32
hibari.2ch.net/test/read.cgi/tech/1303299696/

■テンプレ
wiki.fdiary.net/lisp/

■関連スレ
【入門】Common Lisp その8【質問よろず】
hibari.2ch.net/test/read.cgi/tech/1309940115/

2 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 18:00:51.76 ]
>>1
おつおつ

3 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 23:25:08.72 ]
>>984 前スレ
> おれquicklispには非常に期待してるんだ。ネイティブコンパイラのある言語で、
> ああいうライブラリ管理がある言語って、実は少ないんじゃないかしら。
どういうこと?
機能としてのadsfとの違いがわからない。
quicklispの方がインストールできる率が高いぐらいの認識だわ。
Linuxディストリのパッケージ管理ソフトのapt系やyum系やemerge系やArchLinuxのpacman(yaourt)系みたいなことってadsfでできないの?
Perlとかはどうなん?

4 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/10(月) 00:05:26.51 ]
システムがどうこうよりも結局はリポジトリのメンテナンスにどれだけ手間をかけれられるかって話だよね。
Scheme だと
home.gna.org/dorodango/
snow.iro.umontreal.ca/
あたりがそれなりに使えるかな。
使ったこと無いけど。

Checken Scheme だけの話なら egg があるし。
wiki.call-cc.org/chicken-projects/egg-index-4.html

そういや higepon 氏の言ってた SPON ってどうなったんだろ。
wiki.monaos.org/pukiwiki.php?R6RS%2F%BD%B8%C0%D1%BD%EA%2F%A5%A2%A5%A4%A5%C7%A5%A2

5 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 02:09:04.89 ]
>>3
パッケージ管理で気に入ってるのはLeiningenのclojarsリポジトリかな
もの凄く楽

6 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 09:14:13.99 ]
>>3
quicklispは依存するライブラリをリポジトリからネットワーク経由して勝手に取ってくるよ。
(要はyumとかaptみたいに)
asdfってそんなことできたっけ?

7 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 12:57:52.63 ]
>>6
それはさすがにできる。
検索機能があったかは、ようわからん。

というか、他の仕事でSBCLを触れていなくて、どんどん忘れていく。
作りたいもの、いっぱいあるのになあ。

8 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 14:54:53.33 ]
Clojureだけど、仕事で使える自分は幸せなんだなぁ


9 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 19:33:47.11 ]
Common Lisp では型宣言出来るみたいだけど、Scheme で型宣言出来るような方言ある?

10 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 19:45:32.63 ]
Chickenならforeign-lambdaの戻り値に型指定が必要だから似たようなことができる



11 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 20:36:23.21 ]
Typed Scheme なんてのも

12 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 20:49:06.85 ]
>>11
今は Typed Racket になってるみたいだな。
docs.racket-lang.org/ts-guide/index.html

Racket は敬遠してたけど、ちょっと手を出してみる。

13 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:35:30.13 ]
>>9
KawaいいよKawa

14 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:58:11.38 ]
>>12
へー、Type Inference(型推論)がある。暗黙変換あるのかな。

15 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:12:51.52 ]
関数の返値を

(list a b)
でなくて
(values a b)
にした方が便利な場合ってのが重いつかない

values って何のためにあるの?

16 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:20:18.20 ]
>>15
practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E5%A4%9A%E5%80%A4

17 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:32:10.44 ]
>>15
卑近な例だと整数の除算とかだと便利
CLだとtruncate


18 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:40:14.29 ]
>15
ハッシュを扱った例を調べてみな。nilがデータ内のnilかデータ内で無いことを
返すためのnilかで使われとる。
たちを扱えるようになってきたら初級から脱却ぢょ。

19 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:41:44.00 ]
動的言語の最適化がしにくい関係で使うものっぽい?

20 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 00:32:43.06 ]
ほとんどのコンパイラはvaluesの結果をリストにせずスタックに積んで返すだけ。
だから明示的にリストにして返すよりメモリ消費が少ない。
だからリフティングにも便利。



21 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 02:13:36.59 ]
>>7
ちょっと遅い反応だけど。

多分、ASDF-Installと混同してる。ASDFはファイル間での依存関係を定義したり、
ロードやコンパイルの手順を統一するための枠組み。makeとかに該当する。

そのASDFの枠組みに乗っかって、ライブラリの導入を自動化するのが、
ASDF-InstallやQuicklisp。こちらはCPANやRubyGemsとかと同じ層の枠組み。
ライブラリの自動ダウンロードや検索をするのはこっち。

22 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 03:01:38.28 ]
>>15
性能が必要なとき、コンシングを避けるために使える。
>>16のリンク先にもあるけど、意味論上の理由を無視すれば、
単に性能への要求が全て。同じことは大体はリストでもできる。
Schemeでの(values)とかの例外を除いて。

多値にあまり必要性を感じない人は結構いて、Gerald Jay Sussmanなんかは

ttp://trac.sacrideo.us/wg/wiki/WG1Ballot1Results
> It is important to allow multiple values that can result in multiple definitions
> and assignments, but it is not apparent to me why we need a special data
> type to implement them.

って言ってる。

23 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 03:43:18.97 ]
普通に考えれば構造体でも定義して返せばいいわけだし、
わざわざ特殊なものを積極的に使う理由にはならないなあ
>>18の例にしてもnilと区別したいならノードを返すとか他にいくらでも方法はあるわけで

24 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 05:45:53.17 ]
>>23 何かにラップして返すと、受ける側でアンラップしなきゃならん。
変数に束縛する場合はdestructuring-bindとかパターンマッチが使えるが、
最初の値だけそのまま他の関数に渡したい場合などは一手間余分にかかるし。
それから、APIの互換性を保ったまま後付けで余分な値を返すようにできるのは
仕事でコード書いてると重宝する。単独の値→構造体へと戻り値を変更したら
呼び出してるところ変えて回らないとならないからなあ。

Schemeの多値は二番目以降の値を無視するような使い方ができないので
性能上の要求以外で使うメリットはあまり感じないが。


25 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 08:20:06.53 ]
CLの多値は使わない分を捨てられたり、足らない分をnilで補ってくれて嬉しいんだけど、
たまに、一部の値を返し忘れてるのをnilにされちゃって、バグの原因に気付けずに頭がおかしくなって死ぬ。

26 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 10:18:16.19 ]
>>23
特殊かなぁ? 謎だ。Haskellのように、Maybe/Eitherを定義すればできるけど


27 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 11:11:16.05 ]
>>23
「わざわざ××でなくても○○でいい」という主張は説得力に欠けると思う。
××と○○のどちらに重みを置くかで簡単に逆転するもの。
実際、「わざわざ多値でなくても構造体でいい」という主張に対して >>24 は「わざわざ構造体を使うより多値」って反論だろう。
だけどこの反論は「手間」に焦点をあてて重みを具体的に主張してるのでそれなりに説得力がある。

こういうときには構造体の方が手間が小さいとか、こういうときは手間をかけてもなお構造体の方がいいとか、
「多値を使う理由がない」よりも「構造体を使う理由がある」で主張してくれた方が良い議論になりそうな気がする。

28 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 14:27:36.16 ]
じゃ言うけど、
多値で返す値は順番に依存してるのが良くないんだよ
構造体は名前を使えるぶん間違いが少ないし順序を変えたりするのも楽
それとSchemeで性能とか言われても説得力がない
構造体返しても最適化のレヴェルはほぼ同じだし
どうすかね

29 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 15:59:30.79 ]
下らねえ。

30 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 17:11:17.71 ]
↑そういう応えしか返ってこないんなら反論無しと受け取るよ

構造体はそれ1つを知ってればいいが、
多値は関数それぞれが何を返すのか知ってないといけないのに加えて、
その順番には何の根拠もないから仕様変更に弱い
後で何か付け足す場合とか考えないのかな?
普通に考えれば積極的に使う物ではないという判断に至ると思う



31 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 17:15:52.57 ]
だから多値を推すなら名前付きにしろって思うんだよ
関数引数にも言える事だけど

32 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 17:21:13.23 ]
まあ、関数の引数が見逃されてきたのは、
呼び出し側のインターフェースで引数を強制してるからだけどね
可変長引数の使いにくさを見れば多値がいかに迂闊なインターフェースか判ると思う

33 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 17:46:07.45 ]
多値のせいで例外処理みたいなすっ飛んでく処理とか複雑になってしまわない?
例外受け取っても何が入ってるか判らんとか
R6RS以降追ってないけど

34 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 17:46:34.57 ]
順番に依存よくないな!Scheme みたいな狭い世界じゃなくて、
数学の世界を名前付き引数に改革しようぜ!

35 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 18:01:15.40 ]
(set! result (lambda() (values 1 2 3)))
result => 1
(ref-values result 0) => 1
(ref-values result 1) => 2
(ref-values result 2) => 3

とかw
嫌んなっちゃうな

36 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 18:03:24.20 ]
おっと、括弧が1たりないw

37 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 18:06:35.96 ]
つまり多値がファーストクラスでないのがいけねえんだってことね

38 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 18:50:21.53 ]
>>35
何でdestructuringするマクロ使わんのだ。
単にreceiveとかcall-with-valuesの下でリストやベクタ、
構造体を使えば良いだけで、他からは隠蔽できる。

この辺の話は全部>>16と参照元に書いてるよ。

39 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 19:18:18.53 ]
>>28
「Schemeで性能と言っても説得力がない」と言われちゃうと
Schemeで準リアルタイムシステム書いてる自分の立つ瀬がないんだが。
構造体を作って返すと、最適化でアロケーションを消してもらうのは大変で、
Stalinみたいに全プログラム解析をやるハメになる。多値なら
アロケーションが起きないことが(使ってる処理系で)保証される。
最近GCの性能は上がってるとはいえ、no consingで書くのはバカにならないよ。
そんなコードをSchemeでわざわざ書くな、と言われたらサーセンとしか言えないが。

40 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 19:22:02.14 ]
>>28 >>30
Schemeでの性能の話に説得力がないとか言われてもなー。
現実で業務とかに使ってる人もいるし、StalinとかはCLの処理系と戦えると思うけど。

それと、構造体を現状の多値の代わりに、というのは色々問題出ると思う。
少なくとも、返す側の関数単体じゃそれが多値の代用として使われるかどうか判断できないから、
Lisp語族で当たり前に行われる、インタラクティブにコンパイルする場合、最適化できないよね?
この辺は自分は詳しくはないので、解決する方法はあるのかもしれないけど。
現実的な(将来コンパイラが十分に賢くなったら、とかでなく)範囲であるなら教えて欲しい。



41 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 19:32:30.73 ]
被ったw

あと、要素の追加や削除が将来的に起きそうな場所を抽象化するのは当然で、
どこで多値を使うかはケースバイケースだと思う。>>30は極論に見える。

関数の引数と同じで、固定できる部分は複数の値で、他は抽象化されたものを。
そんなにおかしい話かな?

42 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 19:58:36.30 ]
すっごく素朴な疑問で悪いんだが、多値で使われなかった値って、
そのうちGCされる、って理解で正しい?

43 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 20:01:41.48 ]
>>42
CLの場合だとスタックに戻されるような実装(コンパイラ)が多数を占めてるからGC対象ですらない。


44 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 21:12:49.10 ]
値渡ししかできないわけじゃないんだし
効率重視なら多値なんて使わない方がいいけどな

45 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 21:18:53.43 ]
関数から戻るたびにmake-*するよりはましかと。

46 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 21:37:39.88 ]
副作用を使っちゃうと、状態を変更する関数を呼んだ後に以前の状態を必要とする可能性がある場合、
オブジェクトをコピーしないといけないから、副作用を伴わない多値のが効率が良いこともあると思うよ。

47 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 21:42:48.51 ]
多値についてたちが悪い議論はもうやめようよ。

48 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 02:23:55.43 ]
call/ccで単純に関数の中途で大域脱出し、
デバッグ用途(イミディエイト機能のような)に使いたいのですが、
例を教えていただけませんか。
いまいちcall/ccを使うタイミングがわからないのです

49 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 08:48:09.05 ]
>>48
イミディエイト機能って何? ググってもわからなんだ。
Chez Scheme とかではエラーのときにデバッグモードになるけど、あんな感じのこと?
汎用的に作るのは難しいか出来ないと思うけど、とりあえず使用例みたいなので目的とするところを示してくれんか。


50 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 11:24:47.21 ]
>>49
ベクターを操作する巨大な関数です。
一ループごとに文字列を読み込み、見合った操作をして文字列の先頭を削り再帰します。
(define interprit
(lambda (program memory offset)
(cond
((eqv? programの先頭 #\a) 処理)
...
)
;*ここで脱出*
(interprit 削ったprogram memory offset)
)
)
ループする毎に継続をset!して脱出し、
処理を確認したら戻りたいです



51 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 12:18:26.79 ]
>>50
「処理を確認」をもう少し詳しく。

なんとなく、ブレークポイントを設定してローカルな変数を見たいのかな、
とか思うんだけど、どうなんだろう。

52 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 13:40:15.08 ]
>>51
大域変数を確認したいです。

53 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 14:31:14.00 ]
最初はcondないの内部処理は、各条件ごとの内容をそれそれ別関数にまとめて
作って、ひとつの関数から、cond条件わけの関数とそれぞれの関数に分けて作った
ほうが最初はいいよ。そのほうが読みやすくなるので。
何もかも一つでやらそうとするのはあまりいい傾向だとは思えない。

54 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/16(日) 15:49:08.11 ]
>>50
その処理を一般化すると「ループからジェネレータへの変換」と考えられる。
これがそのまま使えると思う。
practical-scheme.net/wiliki/wiliki.cgi?Scheme%3agenerator%E3%81%A8do%E3%81%A8while#H-3put3dsr6wpqj
call/cc を使う典型的な例なので call/cc の解説の中では似たようなコードはよくある。

限定継続を提供している処理系ならともっと簡単に書ける。
practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%E9%83%A8%E5%88%86%E7%B6%99%E7%B6%9A%3a%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%8D%E8%BB%A2

そういや限定継続って規格に入ってないし、 srfi にもなってないっぽいなぁ。
racket には shit と reset だけじゃなくていくつかのバリエーションがあるみたいだね。

55 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 22:34:38.91 ]
>>53-54
くわしくありがとうございました。

56 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 23:05:42.50 ]
余談ではありますが、
call/ccとdelayを用いてpromiseを返却し、逐一動作が出来ました。

57 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 01:32:57.33 ]
gambitcやchikenでvalues使うと大幅に速度が上がるっていうなら
できるだけ使うように心がけるかな


58 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 11:18:56.17 ]
>>54
糞コテは巣に帰れ

59 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:32:08.25 ]
>>58
SCHEME餃子の巣はやっぱSchemeスレなんじゃね?

60 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 09:16:03.19 ]
shibuya.lisp はどーだった?



61 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 10:59:49.40 ]
クロージャスレから引越しというか。
授業が奥乃先生と複数担当態勢だったりしたのは引き継ぎの目的もあったのかな。

最終講義のアナウンスがあるとしたら年明けかな?

62 名前:デフォルトの名無しさん [2011/10/23(日) 11:51:45.52 ]
>>60
Shibuya.lisp TT#7の動画をニコニコ動画とYouTubeにアップしました。
www.nicovideo.jp/mylist/28336529
www.youtube.com/playlist?list=PLEAB9C327450DA7D3

63 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 14:03:45.42 ]
某氏と某氏のトラブルも収まったのかな。 Shibuyaでは喋らんと言ってたけど
良かったんじゃない?

64 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 15:11:06.90 ]
一応当時、熱くなって申し訳ない、みたいな感じで本人謝罪してたよ。
あとは、相手もう運営側から手を引いてるし。

何にせよ、また出てくれたのは良かったね。

65 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 19:34:34.03 ]
>>62
ひげぽん氏の声はよく聞こえて良い。
滑舌が悪い人や、集音がイマイチなときがあったりするのはなんとかならんかな。
マイクゲインも大きすぎると雑音も拾うから骨伝導タイプのマイクを使うとか。

それと、映像はもう直接PCに繋げちゃってもいいような気がする。

66 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 21:16:06.97 ]
でかい会場のスクリーンでは見えるけど、中継では見づらい、という場面で
ズームしたり、身振りが入った説明をしてるのでカメラを振ったり、という時に
中継担当者の手間が増えるので、そのへんは微妙かも。

67 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:00:51.42 ]
>>66
多くは発表資料も公開してるからそっち見ながらでだいたい問題ないかもな。

68 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 23:25:29.76 ]
これだけ後からスライドの画像を入れてるけど、こういうのはやっぱ結構手間かかるのかな。
www.nicovideo.jp/watch/sm5008319
見易さ的には好ましいとは思うけど、
資料見ながら聞けば済む話ではあるからそこまでするほどのもんでもないって言えばそうだしなぁ。

69 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 01:45:38.40 ]
なあ、Monaの開発は順調さ build5
hibari.2ch.net/test/read.cgi/os/1314741952/

70 名前:デフォルトの名無しさん [2011/10/24(月) 06:22:17.84 ]
スライド画像で差し替えるのは、ページ送りをプレゼン時と同じタイミングにするのが結構難しいです。
元映像見ながらだとなんか微妙にずれるので、わずかに入っているスペースキーを叩く音とかを手がかりにしてました。

あと、音声についてはいつも悩ましくて、人により声質やマイクの持ち方が違うのでなかなか安定しません。
あまりに聞き取りづらいのは、編集時にボリューム変えてますけど、あまりやり過ぎると雑音まみれの変な音になるので悩ましいところです。
発表者の机の上にボイスレコーダを置いておいて、あとから合成するのがいいと思うけど、これもマーカーみたいなのがないと合わせるのがちょっと難しかったり。




71 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 08:23:17.05 ]
UST中継では入力オーバーっぽいノイズ入ったりしてたよね。

72 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 08:41:33.58 ]
音割れしてるのがひとつあって、体調も悪かったからそのまま切っちゃったんだけど、
あれは音量の調整のミスなのか、発表者の声が大きすぎたのか。

さておき、いつも動画アップロードお疲れ様です。

73 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 10:02:52.03 ]
ヘッドセットやピンマイクで強制するとか?
いや、そういう面倒な事こそLISPを活用してだな

74 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 10:23:17.45 ]
どう頑張ろうと声の大きさを一定にすることは無理でしょ。声出してるのが
プロのアナウンサーとかじゃないんだから。

最初のAD変換で音が割れたりしてたらリカバリーのしようがないので、
そこの機材で入力レベルの調整をすればいいんだけども。

75 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 11:01:09.37 ]
・マイクを違う距離に数台用意してマルチトラック録音して後で選別する
・音圧拾ってレールかなんかで距離を自動調節する装置を作る

76 名前:デフォルトの名無しさん mailto:sage [2011/10/24(月) 14:07:01.53 ]
PCMレコーダーに自動レベル調整機能が付いてるものがあるようだけど、
PCだと難しいんかな?

77 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 00:08:48.51 ]
細かいこと気にすんなよ
音割れしてたら見るのやめる程度の内容なんだから

78 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 06:29:44.08 ]
RIP

79 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 06:45:30.26 ]
ご冥福を祈ります。

80 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 07:57:08.33 ]
ジョブス、リッチーに続いてマッカーシーまでもか。

R.I.P.



81 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 08:07:00.76 ]
ttp://jp.techcrunch.com/archives/20111024creator-of-lisp-john-mccarthy-dead-at-84/
えええええ

82 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 08:19:07.05 ]
こんどはマッカーシーが天寿を全うしたのか。
RIP

83 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 13:07:35.50 ]
>>77
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

84 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 13:30:32.58 ]
あびしーえる1.0リリースだって
abcl-dev.blogspot.com/2011/10/abcl-100-released.html

85 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 13:32:20.92 ]
hatsukari.2ch.net/test/read.cgi/news/1319513713/
ν速にはスレが立った。マ板はまだだが。

86 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:40:12.57 ]
某声優ユニットの方も7月で活動終わってた
QEPD

87 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 12:46:50.75 ]
toki.2ch.net/test/read.cgi/scienceplus/1319679294/

88 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 22:21:58.66 ]
GCもマッカーシー由来だったの

89 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 22:30:15.52 ]
(define (f x)
(define-macro (bl)
'(if (> x 0 ) #t #f))
(bl)
)
(f 10)

racketでは動くけど、他の処理系ではやっちゃいけない?

90 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 22:34:59.75 ]
そもそもdefine-macro自体がRnRSにないので、
あんま気にしても仕方ないと思う。



91 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/30(日) 00:28:17.17 ]
define-macro は RnRS で提供して無いけど、
R6RS では簡単に define-macro を実装できる。
典型的な実装例はこんな感じ。

(define-syntax define-macro
(lambda (stx)
(syntax-case stx ()
((_ (macro . args) body)
#'(define-macro macro (lambda args body)))
((_ macro transformer)
#'(define-syntax macro
(lambda(stx2)
(syntax-case stx2 ()
((k args (... ...))
(let ((v (syntax->datum #'(args (... ...)))))
(datum->syntax #'k
(apply transformer v)))))))))))

これなら >>89 のようなことは問題なく出来る。

でもまぁ Scheme 的には let-syntax を使う方が楽ではあるだろうね。

92 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 00:29:23.88 ]
なんだよボーイズラブって

93 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 03:34:57.41 ]
限定継続使われてないからメモリーリークしてたんかね
groups.google.com/group/plt-scheme/browse_thread/thread/a310b7cba8fae651/fa85558e8a5115bf

94 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 05:02:08.64 ]
じゃあこんなのも問題ないのね
でも `[`(,,op ,'y) あたりがうまく動いてくれない

(define (g x)
(define-macro (tmpl op) `[`(,,op ,'y) (list y ,op)])
(match x
[`(- ,z) (list z '-)]
(tmpl '+)
)
)

95 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 12:47:34.04 ]
>>91
各処理系がdefine-macroをどう実装してるかが問題なんだから、
RnRSでdefine-macroをどう実装するかはこの場合関係ないだろ。
独自の定義でオリジナルを上書きして差異を吸収するってんなら別だけど。

96 名前:94 mailto:sage [2011/10/30(日) 13:34:27.93 ]
結局、期待通りに動きませんでした。何がいけないのかよくわからない。

(define-syntax tmpl
(syntax-rules ()
((_ op)
[(list op y) (list y op)])))

(define (g x)
(match x
[`(- ,z) (list z '-)]
[(list '/ z) (list z '/)]
(tmpl '+)
[_ 'else]
)
)
(g '(/ 8))
(g '(+ 10))
(g '(- 12))
(g '(= 19))

97 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 14:12:11.24 ]
何を期待してるのか判らんから助言しようもないが、
matchの仕様を見るにpat部分は普通の評価はされない場所だから
何か勘違いしてるんだろ。例えばパターンの最初の2行は
[(- z) (list z '-)]
[(/ z) (list z '/)]
でいいんじゃないかと。
tmplもそう書き直せば多分動くでしょ。
全く確認してないが。

98 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 14:13:55.83 ]
あ、だからpat部分は評価されないからダメだよ
出てくるシンボルは「パターン変数」になるそうだから。仕様よく読め。

99 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 18:50:28.04 ]
おまいらそんなに括弧が好きなの?
かっこつけんなよ。

100 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/30(日) 20:16:14.53 ]
>>99
そのダジャレは面白いと思って書いてんの?

煽りだろうがあえてマジレスすると、括弧そのものではなくてマクロが重要だろ。
Lisp 風のマクロを実現するためにS式表記が相性が良かったからこの表記が維持されてるってだけ。
外観ではS式の優位性ってのはそれほど無いんじゃないか?

例えば Python で構文木を操作しようと (マクロ的なことをしようと) した場合のめんどくささはこれを見ればよくわかる。
www.unixuser.org/~euske/doc/python/python-lisp-j.html#macros

マクロが要らないならプログラマが直接S式で書く意味はあんまり無いと思う。
見難いと感じないならデメリットも特に無いとは思うけど。



101 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 21:23:48.25 ]
templated match macroとか作ったら論文になるんだろうか
どんな雑誌に投稿するのか知らないけど

102 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/30(日) 23:31:17.46 ]
ずいぶん前の話だけど、 Active Basic スレで正規表現ベースの構文定義を提案してた奴がいたなぁ。
あんまりフリーダムでも困るけど、 Lisp の場合は結局はS式だから、それがちょうどいい枷にもなってる気がする。

103 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 00:16:26.42 ]
個人的には、演算子の優先順位をなくせるという利点も推したい。

他にも、パースしやすかったり、式単位での編集を実装する目印になったり、
S式の利点は案外ある。特に、式単位で編集できないと困る人多いんじゃない?


104 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/10/31(月) 00:39:19.72 ]
>>103
優先順位の問題は確かに単純になっていいところではあるなぁ。
でも、それは簡潔さとのトレードオフがあるから一概に利点とも言えないかも?
今、思い付いたんだけど、どんな関数にしろマクロにしろ特殊形式にしろ「名前が付いてる」ってのは
ドキュメント引いたり定義場所へ移動しやすいって利点はあるね。

パースしやすいってのは処理系の実装者にとってはそうかもしれないけど、ユーザーに対する利点になるかな?
データのシリアライズを write 一発で出来て、 read で読んだら構造が出来上がってるってのは楽だけど、
プログラム自体をS式で記述するってのとは別の話では?

編集が式単位っていうのは良く挙げられるけど、他の言語でも単位が違うだけで何らかの塊はあるわけで、
実際にその塊単位での編集や移動も出来るわけで、開発環境のサポート次第じゃないかな?


105 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 01:54:05.12 ]
S式は構文木を表しているから、逆に機械的に元の文脈を読み取り辛い気がする。
つまり、IDE泣かせ。開きカッコの直後に、どんな候補だせばいいんだろう。
IDE使わないからどうでもいいけど。S式好きだし。

106 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 02:22:18.54 ]
S式で書くとコードがツリー状になるから,切り取るときの目安にしやすい,と思う.
インデントされていればそれがよりはっきり見えるし.
命令型のコードは,意味を成すコードの塊を抜き出すのがかったるいと感じる.

107 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 12:08:16.87 ]
括弧と頭のシンボルでほぼ全てを表現してるから
文脈の探索自体は楽なんじゃないかと思うけど
問題はマクロの処理かな
マクロ内で定義したキーワードとかが候補に出ないんでは
あんまり意味がないだろうし
展開したものを逆に辿っていくのは難しい

108 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 00:28:51.31 ]
goshです。
質問です。
数ページにわたるCGIがあり、POSTパラメータを渡すのですが、継続を渡せないかとかんがえています。
中途から処理を再開すれば、無駄無くプログラミング出来ると思ったからです。

Q1.継続はなんらかの形でコンテナ化して保管できますか?
Q2.継続は一度インタプリタが終了しても有効ですか?

109 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 00:34:12.31 ]
両方無理。手続きの時点でできないので、継続も無理。

110 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/03(木) 01:01:48.77 ]
>>108
継続そのものをシリアライズするのは原則として無理です。
継続には環境フレームやら何やらがぞろぞろとくっついていて処理系の内部構造と不可分なので、
もしやろうとするなら、処理系が最初からシリアライズを強く意識した実装にする必要があります。

Gambit だと出来ますが、実用するなら不要な環境を捕捉してしまわないようにかなり注意が必要で、あまり簡単とは言えないようです。



111 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 02:21:46.20 ]
オブジェクトの印字表現が全て決まってたら簡単だったのにねえ
つまんない制限だよねえ

112 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 03:09:32.82 ]
Schemeオブジェクトが全て印字/読み込み可能だったとしても、環境フレームからは
openしているファイルディスクリプタだの何だのが間接的に参照されてるから
そう簡単にはいかないよ。

113 名前:108 mailto:sage [2011/11/03(木) 18:17:31.61 ]
>>
そうですか…残念です。
とにかくありがとうございます。

114 名前:デフォルトの名無しさん [2011/11/03(木) 20:03:38.36 ]
結局継続がファーストクラスなんて役に立たないってこった

115 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 21:19:02.42 ]
たしかにバカの役には立たない

116 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 22:41:25.16 ]
kahua とかは?

117 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 23:23:33.61 ]
Kahuaとかはアプリケーションサーバとかの層のプロダクトなので、
基本的に起動し続け、継続をシリアライズしたりする必要はないよ。

継続を活用したウェブ開発をする場合、CGIだと厳しいと思う。

118 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/04(金) 00:23:44.47 ]
>>106
意味的な単位と表記上の単位が一致しやすいってことですね。
Lisp だと小さい単位で書きがちということもあって納得です。

119 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 03:42:10.30 ]
継続の道はまだ始まったばかりだぜ
第一級継続先生の次回作にご期待ください

www.google.co.jp/search?hl=ja&q=%22delimited+control%22+scheme+filetype%3Apdf&oq=%22delimited+control%22+scheme+filetype%3Apdf
www.google.co.jp/search?hl=ja&q=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3+filetype%3Apdf
www.google.co.jp/search?hl=ja&q=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+filetype%3Apdf&oq=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+filetype%3Apdf

120 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 03:53:38.35 ]
racketでも検索した方がいい。
www.google.co.jp/search?hl=ja&q=delimited+control+racket
community.schemewiki.org/?composable-continuations-tutorial



121 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 19:37:26.64 ]
宇宙全体をシリアライズできなくても
地球全体をシリアライズすれば十分

122 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 21:10:14.05 ]
ありんことみじんこじゃ全然違うと思いますけどー
永続化する場合こんどはインスタンスの管理の問題があるけど

123 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/04(金) 22:32:53.69 ]
何を言いたいのかわかんねーよ。
比喩を持込むのはなるべく避けろってのは議論の基礎だろ。
もうちょっと具体的に言ってくれんか。

124 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:35:36.71 ]
餃子がそれを言うのかw

125 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 00:44:10.21 ]
餃子でもシュウマイでもいいじゃないか。by Lispトムヤンクン

126 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 08:42:02.91 ]
もしかし継続って、外出しできてこそ本領発揮するんじゃないのか?
最初から仕様にもりこんでおけば今頃は超有名になってたよ

127 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 12:55:12.57 ]
>>124-125
行者って書こうとして間違えたんじゃないんだからねっ!!

128 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 12:59:27.30 ]
行者だと無条件であぼんされそうだから餃子でよかったと思う

129 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 13:03:13.19 ]
>>123
なんでときどきDQN口調になるんだよw

130 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 13:22:34.67 ]
>>129
煽らないとすぐに過疎るからだよ。
極論を書いたりするのも反論してみろっていう煽りだよ。
言わせんな恥ずかしい



131 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 14:40:38.83 ]
餃子のせいで昨日の夜餃子食べたくて大変だった。

部分継続をシリアライズして、HTMLに埋め込むっていう、上で出てた論文は面白かった。
みんな色々考えてんだねー。

132 名前: ◆QZaw55cn4c mailto:sage [2011/11/05(土) 14:47:50.97 ]
>>130
(^^)

133 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 15:36:31.64 ]
>>130
あんたがそこそこ勉強してきた人だってこと多くの人がわかってんだから
煽らんでもいいよ。それより食らいつくネタを考えたり、拾ってきたり
するといいよ。そのほうが健全なスレになる。by Lispトムヤンクン

134 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 15:49:02.65 ]
継続外出しはR7RSで
いつでも再開できるのがSchemeの常識に

135 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 16:07:36.48 ]
>>133
俺が勉強してたらどうして煽りが要らないんだ? 意味わかんね。

議論しようぜってのはサイエンス的にもエンジニアリング的にも民主主義的にも美徳だろ。
俺に間違いがあるってのなら、反論しろよ。 意見を出せよ。
議論自体を拒否するのは不誠実だぞ。

136 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 16:16:36.44 ]
>>135
何もわかってない奴が盛り上げよう?あるいはかまってもらおうと
する場合は煽りという選択肢を選びがちという事だよ。あなたの
場合は、その選択肢を選ばなくても他の選択肢で十分盛り上げられ
る技量を持ってるでしょと言ってるだけ。by Lispトムヤンクン

137 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 16:46:04.28 ]
とりあえず行間はうめといたからこれで趣旨はわかるだろう。
最後に、餃子には期待してるよ。

138 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 16:53:07.53 ]
継続をシリアライズしたりプロセスをまたいで移送したりできたら夢が広がりんぐ。
>>112 も言うようにポートのような外部とのインターフェイスだとか、
破壊的な処理だとかを考えなければ関連するデータを全部書出せばいいだけなので
いくらかの (かなり大きな「いくらか」だと思うけど) 制限有りでよければ出来そう。
というか、 Gambit 等ではやってるわけですし。

規格にするならあとはその制限をどのレベルにするのが妥当かって話ですよね。

139 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 17:00:05.29 ]
例えば (継続に一般化すると説明が面倒なのでクロージャで説明)

(let ((x 1))
(write (lambda()(set! x (+ x 1))))
(write (lambda()(set! x (+ x 2)))))

みたいにふたつのクロージャを書き出したとして、
元々は共有しているはずの x が分断されてしまうのはつまらないので、
set! したら既に書き出したクロージャにも波及したりしたら面白いとか思った。
面白いだけで使いどころがないし非現実的だけど。

無難な落とし所としてはあくまで書き出した時点の環境ってことにするしかないかなー

140 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/05(土) 17:08:41.15 ]
Petite Chez Schme の 8.4 を入れたらイメージをダンプするオプションが無くなってたよ。
かわりに --compile-imported-libraries なるオプションが出来てた。
R6RS の実行モデルに合わせて変えたってことだと思うけど、
--boot オプションはあるんだよな。 暫定的な処置ってこと?
教えてエロいひと



141 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 17:23:26.90 ]
>>139
「書き出す」っていうのは従来のファイルシステムを想定してると思うんだけど、
その想定は妥当なの? OS自体が一つのSchemeの実行イメージに載ってて、
メモリが自然に永続化されるようなモデルならそういうことも可能かもしれない
(効率との折り合いはあるけど)。Smalltalkの環境みたいな。


142 名前:139 mailto:sage [2011/11/05(土) 17:50:35.07 ]
今、サブマシンからの書き込みなのでトリップ無しで御免。

>>141
非現実的ってのはそこんところですね。
出力先を特殊なデータベースとかにするのも、
言語でそこまで踏み込むのは Scheme らしくないし。
さすがにこのへんは余興というか、面白いだろうなーという妄想レベルの話です。

143 名前:139 mailto:sage [2011/11/05(土) 17:57:18.27 ]
>>141
書き出すこと自体については可能だと思います。
Common Lisp なんかでは実行中のイメージをダンプしたりは普通ですし、
それをクロージャに繋がってるところだけに限定するか、
無理なようなら効率を無視してまるっと書き出すとか出来るでしょう。

144 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 18:19:45.22 ]
SchemeでFizzBuzzってどこまで小さくできるの?

145 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 22:01:38.08 ]
>>142
一瞬サブマシンガンに空目した。

146 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 23:10:28.83 ]
golf.shinh.org/p.rb?FizzBuzz
ここでは、77バイト

147 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 04:30:49.03 ]
>>145
俺漏れも

148 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/06(日) 08:55:42.40 ]
>>136
知るかボケ
にちゃんねるに何を期待してんだ?

ガキは家へ帰ってパパのチンポでもしゃぶってろ

149 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 10:45:52.49 ]
>>148
ひどいなw
これ言われたら超屈辱的だわwww

150 名前: ◆QZaw55cn4c mailto:sage [2011/11/06(日) 10:54:33.95 ]
ままのおっぱいじゃないんだ‥‥‥。



151 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 11:18:43.42 ]
ナッパさまのクンッ!が必要だな

152 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:06:19.58 ]
123 名前:SCHEME餃子 ◆8X2XSCHEME [sage] 投稿日:2011/11/04(金) 22:32:53.69
何を言いたいのかわかんねーよ。
比喩を持込むのはなるべく避けろってのは議論の基礎だろ。
もうちょっと具体的に言ってくれんか。

148 名前:SCHEME餃子 ◆8X2XSCHEME [sage] 投稿日:2011/11/06(日) 08:55:42.40
>>136
知るかボケ
にちゃんねるに何を期待してんだ?

ガキは家へ帰ってパパのチンポでもしゃぶってろ


153 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/06(日) 14:11:56.96 ]
いや…その書込みは別に意味はねえ ただの悪意よ

154 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 14:37:34.53 ]
処理系がシステム巻き込んでクラッシュするようなプログラムを出してこそ、悪意。

155 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 15:54:39.42 ]
>>153
悪意はある反面あなたの精神的な未熟さだけは理解できました。
By Lispトムヤンクン

156 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 16:06:06.82 ]
>>149
当事者としてはすこぶる不愉快だが、2ちゃんだからこの程度のことは書く
人がいてもおかしくはないですからね。トムヤンクン
実際に対面して同じ事を目の前で言えるような人とは思えないし、
そこまで肝がある人じゃないだろう。それができるのが2チャンです。
心理的に不安定な人という印象だけが残ってしまったのも事実なのです。
これ以上は時間を捨てるようなものであり、オフトピでもあるので
これで失礼します。

157 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 17:32:10.79 BE:1820063039-2BP(0)]
>>156
何この粘着君。
空気読まない奴だと思ったらわかった上で乱してんのか。
タチ悪いわー

158 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 20:18:07.26 ]
>>157
自己紹介してんじゃねえよ

159 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:01:30.77 ]
30過ぎるとタチ悪くなるよ

160 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 21:59:49.89 ]
数ある(のかどうかわからないけど)関数型言語であえてLISPを選ぶ理由って何?
それと関数型って言うとLISPの他はMLっぽいのが多い気がするけど他の系統ってどんなのがある?



161 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:03:20.53 ]
LISPをマルチパラダイムやで?

162 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:03:29.71 ]
LISP「は」

163 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/09(水) 00:42:50.37 ]
>>160
どういうものを関数型って呼ぶかは明確な定義があるわけじゃありません。 でも Scheme や CL はマルチパラダイムを標榜してはいますね。 LISP 族の中には純粋関数型のものだってあると思いますが、それは少数派。
関数型的な特徴は「プリミティブ」であって、その上に様々なパラダイムを載せられるのが LISP の強力な点だとされています。
例えば Java だって関数型のアプローチでプログラムすることは出来ます。 C++ を定理証明に使うアイデアもあります。
www.kmonos.net/wlog/102.html#_0103091022
でも、 Java は関数型ではなくて、 C++ は定理証明器ではありません。 何故なら、そういった書き方はプログラマがそういうパターンに沿って書くことが一応可能であるということであって、そのように書くための道具 (語彙) を作ることが難しいからです。
つまり、抽象度の違いです。 Java は手続的なアプローチに抽象化する道具は揃っていますが、そうではないパラダイムを持ち込もうとすると言語のサポートは望めないのです。
一方で、 LISP はどうでしょうか? SICP にあるような Prolog もどきや回路シュミレータを見ればわかるように、一旦ライブラリを構築してしまえば「もはやそういう言語であるかのように記述できる」のです。
これらの差が生じるのは、一般的な言語における抽象はそれぞれの言語ごとでのパラダイム (クラスとかテンプレートとか) が単位であるのに対し、 LISP ではS式という「記法」が単位であるからだと私は考えています。
あらゆるパラダイムをひとつの言語で実現できて、時には混在もできるというのは圧倒的な強みになると思います。 それが、私が LISP (Scheme) を好む理由です。 下手するとカオスになるというデメリットと隣りあわせではありますけどね。

164 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 00:56:34.33 ]
>>163
そのトリップ、SCHEMEはともかく8X2Xって何?

165 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 01:09:43.02 ]
>>163
JavaとかCだと、文と式があって、言語の拡張=文の追加・変更が難しい。
LispはS式で統一されてるので、Lisp自身の拡張が容易、ってのが大きいんじゃないかな?

166 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 01:09:51.42 ]
>>164
あまりだろ。

167 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/09(水) 07:19:31.37 ]
>>164
16倍ってことだよ

168 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 07:42:05.03 ]
16bit

169 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 12:10:28.17 ]
理屈ではそうだけど
現実世界で圧倒的に役に立っているのは
JavaやC++なんだけどな

170 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 12:15:21.47 ]
ずいぶん狭い現実世界だな



171 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 13:20:04.76 ]
餃子の相手をする人の相手をすることはない

172 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 15:31:18.24 ]
やあ、言語の寿命が心配なのか?

LISPの言語拡張は、S式が作り出した知恵の一つ、いや武器か。
普通のやつらは決して辿り着くことができないLISPの英知として、
S式が我々に与えたものだ。昔、規格策定で起きた大きな抗争の時にな。
あの時はホント、まいったよ。
見ての通り、継ぎ目すらない美しいフォルムだろ?
一体どんな仕組みでできてるのか、調べれば判るだろうが、
すまない。私には興味がないんでね。
詳しい事は、まだArc作ってるポールにでも聞いてみるんだな。
何か知っているんじゃないか?

S式。
ろっと、驚かせてしまったようだな。
これは他の言語で言う、演算子でも文でもない。
いわばS式だけが作り出せる構造体だ。
ただ実行するだけでなく、データとして取り出せる。
例えば、この無数の括弧。気を付けろ、数えると一瞬で悟ってしまうぞ。
悟りとは何かだって?
ハハハハ、それは昨日言っただろう?
あ、すまない。君にとっては明日の出来事か。
いや、もっと先だったかもしれないな。
その日が来たら、また説明しよう。

173 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 16:22:15.67 ]
ttp://xyzzy.s53.xrea.com/reference/wiki.cgi?p=interactive
これの
interactive {INTERACTIVE-STRING {PARAMETER}*|LIST}
っていう引数の書き方はなんなんでしょうか?
正規表現的なようでよく分かりません

174 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 18:34:02.30 ]
>>170
どこの現実世界にいるんだよ
おまえは

175 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 18:39:34.59 ]
アシタカ「LISPは死なないよ.構文木そのものだから」

176 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 19:03:51.75 ]
つ AST

177 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 22:39:53.45 ]
なんだかんだ言って、結局はLispだけ残ってきたわけだしね。

178 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 23:21:14.60 ]
>>163
そもそもなんでトリップ付けてんの?
NGワードに設定しやすくていいけど。

179 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 23:47:03.41 ]
>>173
波カッコ{} オプション
スター* 0回以上の繰り返し
縦棒| または
つまり、引数は無くても良い。ある場合は次の2つのうちのいずれか一方。
INTERACTIVE-STRINGの後ろに0個以上の任意個のPARAMETER
LIST

BNFってやつかな。

180 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:12:37.84 ]
Lispを使うと普通のやつらの上を行けますか?
また具体的にどのように上を行くのでしょうか?




181 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:17:37.91 ]
上をいけたのは他の言語が未成熟だった昔の話
今じゃ下にしがみつくのがやっと

182 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:18:01.22 ]
※行けと言うだけであり、行けることを保証するわけではありません
※具体的な方法は確認されておりません

183 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:21:30.75 ]
>>177
俺が業界に入って以来VBも残ってるよ
俺が業界から去っても多分残ってると思うよ
そういうスパンで区切ると他の言語でも別に問題ないと思えてくる

184 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:32:58.75 ]
普通のやつらの上を行けで思い出したけど
彼の作った言語はどうなったんだ
名前忘れて思い出せないけど

185 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:34:29.97 ]
ちょっと前curlって言語があったな

186 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 03:13:45.23 ]
>>184
Arcは普通にバージョンアップとかされながら、
一部の人に使われてるみたいよ。


187 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 00:46:31.15 ]
SBCL始まったな。

random-state.net/log/3529868963.html

188 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 12:40:45.36 ]
gaucheでsxmlをhtmlに書き出したいのですが、分からないことがあります

htmlでいうところのh2とh3の属性値を見て、
id が設定されていなければ連番のidを独自に設定したいです
それ以外の要素は普通にhtmlへと書き出します

Gauche:SXMLとSXPath

practical-scheme.net/wiliki/wiliki.cgi?Gauche%3ASXML%E3%81%A8SXPath

Gauche ユーザリファレンス: 11.36 sxml.tools - SXML構造を操作する

practical-scheme.net/gauche/man/gauche-refj_159.html

このあたりを見てみましたが、どれを使えばよいのかよく分かりません
よろしくお願いします

189 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 13:41:55.63 ]
gaucheのさぽせんに聞け

190 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/12(土) 17:53:44.33 ]
>>188
読んでわからなかったのなら他の人もわからない可能性が高いので、
WiLiKi の初心者の質問箱に書いたほうが後続の人のためになるかもね?
俺もSXMLのモディファイヤを使うのは始めてなので本当にこれが正しいのかよくわからないけど、
試してみた感じではちゃんと動いた。

;; 必要なライブラリを use する
(use sxml.tools)
(use sxml.sxpath)
(use sxml.ssax)

;; テスト用に元になる sxml を作る
(define sxml
(ssax:xml->sxml
(open-input-string "<xml><h1>2</h1><h1>3</h1></xml>")
'()))

;; id を生成するジェネレータ
(define id-maker (let1 x 0 (^() (inc! x) `(id ,#`"L,(counter)"))))

;; sxpath で対象ノードを抜き出してそこに id を追加
(for-each (cut sxml:set-attr! <> id-maker) ((sxpath "//h1") sxml))

;; これで id がついてるはずなので確認してみよう
(write sxml)



191 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 18:43:04.34 ]
>>188
SXMLは基本リストを使った単なるツリーなので、
ツリーを操作するのと同じで問題ないよー。

>>190みたいに副作用で破壊的に変更しても良いし、
map-unionとかで走査して、置き換えても良いし。


192 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 00:14:17.95 ]
JavaScriptでStalinみたいな(JIT含む)コンパイル時型推論の成果が取り込まれてるのかー。
LLVM経由の下流でも使えるなら、成果共有できればいいのにな。

Fast and Precise Hybrid Type Inference for JavaScript
people.mozilla.org/%7Elmesa/ti-draft.pdf
The Impact of Optional Type Information on JIT Compilation of Dynamically Typed Languages
www.masonchang.com/storage/papers/dls05-chang.pdf

193 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 10:01:22.66 ]
取り込まれてるレベルじゃなくて、
この分野はJavascriptがJavaと
一緒に最先端を形成してる。
pluginによる言語機能も
メタサーキュラーJITに組み込まれる
実装が広く出回り始めたり。

194 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 10:58:26.37 ]
Gaucheのtext.html-liteで
特定の条件を満たした時に
複数のHTML:p手続きを実行?するにはどうすればいいのでしょうか
例を出すと
(when test (HTML:p "foo") (HTML:p "bar"))
のように書くと、最後のbarのみが出力されてしまいます
意図しているのはどちらも出力させることです

195 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 11:42:13.97 ]
>>194
どうせ最終的に write-tree するんだろうから、↓でいいんじゃないか?

(if test (list (html:p "foo") (html:p "bar")) '())

196 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 18:31:53.54 ]
>>194
html:pとかは、HTMLを出力するのではなくて、
文字列やシンボルで表現されたHTMLのツリーを返すだけの関数。
だから、whenの仕様通り、最後の式の(html:p "bar")の値が返される。

>>195みたいにリストで括るか、html:divとかで括るかすれば良いよ。

197 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 22:29:00.85 ]
>>190-191
ありがとうございます。
sxpath の使いどころの流れが見えてきました。
いろいろと試してみます。

198 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 22:57:40.66 ]
竹内関数で音楽生成 - aikeの日記
d.hatena.ne.jp/aike/20111112

Fruity Wrapper ってソフトを使っているみたいだけど、
takの再帰処理毎に3和音を生成->アルペッジョを生成てなことをしているのかな
tak関数のこういう使い方は思ってもいなかったので面白い

199 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 23:11:59.47 ]
ほかの使い方は思っているのかよ

200 名前:デフォルトの名無しさん mailto:sage [2011/11/13(日) 23:44:45.49 ]
>>199
普通のプログラマがtak関数の応用について1%考えているとして、
がんばって考えた人が2%だとすると、98%ぐらい考えられていないからなあ。



201 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 00:08:19.53 ]
まあどうでもいい

202 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 03:15:01.10 ]
>>198
メガデモ的でもあるな、なんかちょっと感動した

203 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 06:40:13.56 ]
インタプリタとかで、関数の再帰呼び出しの性能を評価する
マイクロベンチマークとしては割と見かける部類だと思う

204 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 08:42:59.60 ]
ベンチマークとしてならGabrielベンチマークとしてLisp界隈だとド定番だし、
他の言語のベンチマークでも見かけるくらいにはメジャー。

205 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 09:04:53.88 ]
そーなのCAR

206 名前:デフォルトの名無しさん [2011/11/14(月) 11:37:05.16 ]
EclipseのSchemeのプラグインってないのかな。
エンジンはGauheを使えたらさらにうれしいのだけど。

207 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 11:51:54.50 ]
ggrks

sourceforge.net/apps/wordpress/schemeway/

208 名前:デフォルトの名無しさん [2011/11/14(月) 11:53:30.09 ]
やっぱSchemeWayしかないのかな。
ぜんぜん日本語情報がないよね。

209 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 12:02:47.64 ]
ただでさえ人口が少ないSchemeで、さらに人口が少ないEclipseでの開発者で、
さらにさらに人口が少ない日本語話者による日本語の解説を期待しても始まらないよ。
日本語情報が欲しいならEmacs使わないと。マイノリティを貫くならそれなりの覚悟が必要。

そもそも英語の情報だって、最悪辞書見ながら読めば普通に意味が分かる程度には読める。
日本人なら誰でも長年英語勉強してるんだから。

210 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 16:48:15.26 ]
>>209
話者・使用人口で語るのは間違いだろうなあ。人口1,200万人ならそう言って問題ないだろうけど。欧
米の言語を無理やり方言とすると、漢字の方言とすると日本と中国は中国のおかげで人口的には勝って
いる。

ttp://www.mext.go.jp/b_menu/shingi/chukyo/chukyo3/015/siryo/06032707/005/001.htm

日本語環境が遅れるのはIT政策を3年ぐらいの経済対策として消費してしまったのが一番の原因だと
思うよ。もっと長いスタンスでIT分野を応援していればこうはならなかったんじゃないかな。FreeBSD
とか、2000年あたりはかなり活発だったよね。雑誌もいっぱいあったし、書籍も多かった。Redhat,
TurboLinux, Vine linux等の名前は知っていたけどインストールしていなかったな。Vine以外の日本語
環境はどうだったの?



211 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/14(月) 17:59:50.55 ]
>>210
おいおい。 それを方言としてまとめるのは無茶すぎだろ。 jk

212 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 18:50:46.58 ]
>>192-193
Javaってひょっとして静的型推定なのでGCがある以外はC++とあんま変わらない?
確かに高速になったとは聞いたけど

213 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 19:07:56.88 ]
Javaは速くなければならないというお金に直結する緊急課題が昔からあった
LISPには特に無かった

結局流れるお金の量なわけです

214 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 20:56:12.69 ]
>>213
Javaはなぁ、VisualAgeのScratchエディタがEclipseにも乗っていればよかったのにとつくづく思う
REPLみたいなこと出来てアレでの開発はCPU食う代わりに効率よかったんだけどな

215 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 21:16:39.53 ]
Eclipseのスクラップブックじゃダメなん?

216 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 22:08:56.12 ]
>>210
この阿呆はLispスレに何しに来たんだよ……。
言ってることもやってる場所も何もかも間違ってて突っ込み切れない。

方言として認識すれば日本語でドキュメント書いてくれるヤツが増えるのか?
後半の段落は1960年に発表されたLispに関係あるのか?

217 名前:194 mailto:sage [2011/11/14(月) 22:11:59.71 ]
>>195-196
なるほど、listでくくると処理が楽そうですね。

218 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 22:13:42.75 ]
>>212-213
SBCLも速い。
まあベンチなんて所詮遊びだけど…
shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php

219 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 00:33:23.33 ]
>>216
批判は誰でもできるんだよ。じゃあ、日本語環境が厚くないのは、なぜ?

220 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 00:48:14.18 ]
www.kokoro-yamai.com/category/%E7%97%87%E7%8A%B6%E7%B7%A8/%E3%82%AD%E3%83%AC%E3%82%8B
>人がキレるのは、前頭葉のコントロール能力が弱くなっているからではないかと、専門家の間で言われています。




221 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 01:04:14.64 ]
>>213
>> 結局流れるお金の量なわけです
そんな悲しいこと言うな。オレは信じてるよ、人の思いの強さを。
最後に勝つのはAIだよ、AI。

222 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 01:28:59.20 ]
>>219
そもそもの話は外国産マイナーツールの日本語情報が少ないよ、って話だからな?
マイノリティの中のマイノリティが少ないのは当然だ、っていうとても当たり前の意見に、
「日本語を漢字の方言と見なせば多数派だ」とか言ってお前が絡んできたんだからな?
全然事情の異なるFreeBSDやLinuxの事例まで持ち出して。

質問についてだけど、日本語環境が厚くない、という曖昧な表現されても他人には分からんよ。
CLでもSchemeでもClojureでも、処理については多くがUnicodeレベルの国際化を達成しているから、
メッセージカタログとかのUI方面での対応の話と取るけど、構わないな?

単に、それをして受ける恩恵と、それに必要な労力が見合う人がコミュニティにいないからだよ。
開発者の興味とかコミュニティの大きさや文化、個人の趣味とか、色々な要素が関係しているが、
結局は人がいないという所に帰結する。

223 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 01:41:32.42 ]
改善したいなら、コミュニティを広げて、影響力を大きくすれば良い。
そうすれば、英語が得意でUIの地域化に貢献したい人が出てきたり、
処理系やツールに投資してくれる企業が現れて、対応が改善したりする。
こうなって初めて、国からの援助も期待できる。

そういう風にコミュニティを変えていくために必要な労力と、
自分を変えて不自由なく立ち回れるようになる労力を比べて、
後者を選択してる人が多いだけの話。

224 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 01:50:15.33 ]
>>222
「人がいない」って人が少ないって意味だよな。人が少ないと言えるのは何人ぐらいがいればいいの?
人が少ないとで思考停止しちゃうのは問題ないかね?

わざわざ言いたくないけど「日本語を漢字の方言と見なせば多数派だ」はジョークだからなあ。日本語
ユーザーが世界で考えると少ないというのに反論したかっただけ。

人が少ないで思考停止しちゃうのは問題ないかね?
マイノリティ云々言い出す奴でガチでそう思っている人がいるから発言は配慮しようぜ。

225 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 03:13:36.90 ]
>>224
とりあえず、意図を教えてくれたのはありがたいな。今まで意味不明過ぎた。
あと冗談はかなり寒い。>>211を見ても。俺らが感性ないだけかもしれんが。

人の少なさを実感したいなら、GitHubやBitbucketで言語別にリポジトリを検索すると良いよ。
相対的にマイノリティなことは理解できる。絶対的に多いか少ないかは証明が難しいな。
こちらはことあるごとに人の少なさを実感するんだけど、それじゃ納得いかないだろうしな。

逆に、>>224は人が十分に多いと思う何らかの根拠があると思うんだけど、それは何?
思考停止してると思うなら、別の原因に何らかの心当たりがあるんじゃないのか?

226 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 05:05:39.95 ]
>>219

>>218
のベンチマークにRacketがあるのにGaucheがない理由を想像できるかい?

227 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 05:09:13.11 ]
>>225
人が少ないと言えるのは何人ぐらいがいればいいの?
 ↓訂正
人が少なくないと言えるのは何人ぐらいがいればいいの?

あと多言語と比べても日本語を使えるユーザーは十分いるし、日本は国としてはお金持ちだ。GitHubや
Bitbucketの話はそうなんだろう。それで実際に開発に関わっている日本人が人が少ないという話は肯定
しているよ。
でも、「人が少ない」という現状認識は聞き飽きたから、その現状認識への処方箋を出すべきなんじゃ
ないかという提案だ。

EclipseのSchemeのプラグインが欲しいと思うならLisper Schemer向けEclipseの勉強会(ネット回線なし)を
資料代(A4二枚のレジュメ)500円で都心で開けばいいんじゃないの。交通費のみでプラグイン開発者一人を
呼んで色々と話し合えばEclipse以外の話も出てくるだろうし、個人個人で何ができるかというのがみえて
くるんじゃないかな。三日坊主プロジェクトをいっぱい立ち上げてとりあえずやってみればいいんだよ。そ
して、隔月か、三カ月に一回集まって刺激し合えばいい。
3.11でみんなの意識が変わったから今がやり時だと思うよ。今の有事から終わらない日常に戻ったら何も変わら
ないだろうなあ。自分が言いたいのはそういう話。
>>226
どういう理由? マジで知らない。
そういう話を勉強会で顔を突き合わせて、問題意識を共有すればいい。一人で悶々と考えたり、プログに書いても
あんまり効果がないんだから、身体をもっと使うべきじゃないのかね。

228 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 07:39:24.11 ]
他言語ユーザの多くは英語に不自由してない事実。

229 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 07:52:47.34 ]
俺のチンコはファーストクラスオブジェクト

230 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 07:55:13.80 ]
>>228
中・高・大学で10年以上教育を受けていて、日本人は英語を不自由にしていると言い切れるのかね。



231 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 08:29:38.04 ]
「日本語環境が厚く無い」のを問題視するんなら、何を解決したいのかを整理した方がいいんじゃないか?
俺個人としては、マルチバイト文字処理が手軽に出来れば嬉しい。
もし英語読むの面倒だから、程度の理由なら、殆どのプログラム言語が英語ベースの現状で、随分甘えたやつとしか思わない。

そんなところの敷居を誰かが下げてくれるのをただずっと待つか、自分から積極的に今ある資料を活用して自分の付加価値も相対的に上げるのか、選ぶのは自分だけどな。

232 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 09:33:49.31 ]
日本語のドキュメントが少ないのは、仕方がないよ。

プログラムを書くのもコメントは日本語より英語のほうが多いんだし。逆に
一部を除いて日本発のものの英語ドキュメントの貧弱さは寂しいと思ってる
くらい。読むより書くほうが敷居が高いけどね。

日本語で〜と考える場合、すでに環境を整えやすいClojureをやっておけばい
いよ。web関連ならこっちで十分だから。schemeならばgaucheでもperlのちょっ
とした代わりくらいはできる。書籍はまえより充実してきてると思うけどな。

233 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 11:05:15.01 ]
日本語のドキュメントが英語より読みやすくなっている例って
字の大きさぐらいだな。すまんね年寄りで

234 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 22:36:08.28 ]
>>232
横だけど、clojureはweb以外だとあまり良くないってこと?

235 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:40:34.45 ]
closureで気になったことがあります
作ったスクリプトを他のwindowsパソコンでも使えるように
exe化できるのでしょうか?

236 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:48:04.64 ]
頑張ればexe化もできなくはないけど
実行可能jarで妥協した方がいいんでないかな

237 名前:デフォルトの名無しさん mailto:sage [2011/11/15(火) 23:58:36.09 ]
こんな感じか
www.google.com/search?hl=ja&q=clojure+jar+%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%89%E3%82%A2%E3%83%AD%E3%83%BC%E3%83%B3+%E5%AE%9F%E8%A1%8C

238 名前:235 mailto:sage [2011/11/16(水) 00:00:01.32 ]
>>236-237
それがよさそうですね

239 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 00:00:51.12 ]
>>234
悪いとは言ってないし、そこまで判断してない。ただし、webに
というのはgoogle app engineやherokuに対応できるというところ
の強みがあるし、java系の強みを持ってる。だからweb関連ならこっちで十分と

240 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:34:37.47 ]
>>234
Web以外は既存のjavaと敷居が一緒なんだよ
Webサーバサイドで使うと開発効率がJava+tomcatよりも高いのが魅力なんだ




241 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 01:57:32.39 ]
>>239, 240
レスありがとう。これなら本格的にclojure使おうと思っていたので、汎用には
欠点があるのかと気になったんだけど、そういうことなら大丈夫そうで安心した。



242 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 02:21:21.64 ]
>>241
Clojureで速いプログラムを書こうと思ったら、ちょっと知識が必要だけど
最初ならプログラミングClojureやlabreplで遊んでればいいよ。:-)

243 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 22:38:56.77 ]
>>198について、竹内先生本人がコメントしていた

竹内関数で音楽生成 - aikeの日記

d.hatena.ne.jp/aike/20111112#c1321336379

>当の本人の竹内です.友人から教えてもらってアクセスしました.
>素晴らしいですね.嬉しかったので,このURLをみんなに紹介しまくっています.

高評価みたい

244 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 22:54:13.35 ]
竹内文書

245 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 02:46:50.61 ]
まあ他に大した使い道ないしな

246 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 03:01:22.40 ]
しょぼいLispマシン作った人だっけ?
しかも復活祭までやちゃったんだよな

247 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 07:49:47.32 ]
竹内先生の退官記念の最終講義、ようつべあたりで流せば良いのに。

248 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 08:50:08.66 ]
>>246 具体的に指摘できないから「しょぼい」としか言えない、
馬鹿丸出しですねw

249 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 09:30:17.13 ]
>>246
TAOの事いってるならおまえが馬鹿をさらけ出してるとしかいえない.


250 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:04:04.00 ]
TAOならうちの研究室にあったけど
誰も使ってなかったな



251 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:18:15.00 ]
こいつ自分のことゲルトミューラーとか言っててさすがに引いたわ
せめてもうちょっと上手くなってから言えって感じだよ

252 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:35:27.53 ]
青木淳とかもそうだけど、やたら古典の引用だののヘンな衒学趣味がうさんくさくて嫌い。

数学者が日本の品格みたいな本出すようになるともうヤキが回った状態であることが
わかるのと同じようなもので。

253 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:44:08.95 ]
興味のある言語にTaoと書いておいたら面接で爆笑された
Railsエンジニアを募集してる会社の採用面接を受けた時の話。
転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。
仮想化技術とか色々書いたけど、プログラミング言語の中で興味があるのはTaoだったので、
Taoと書いておいたのですが、それを見た面接官のリアクションが酷かった。

面接官「Tao・・・ふははっ!Tao!」
面接官「Taoやってるんですか?wwwww」
俺「(唖然)は、はい・・まだS式を理解したぐらいですが。。」
面接官「Tao・・・ニヤニヤ」

その人はエンジニアで、当然Rubyのコードを書いている人だったので、
Rubyが「Matz Lisp」と呼ばれている事を知らないワケが無いだろうと思っていた。

つまり、このリアクションは"理不尽な状況に直面した時にどう対応するか"を見ているんだろうと判断し、あえて突っ込みは入れずに対処した。
しかし最後の質問で「何故RoRを採用したんですか?」と聞くと、
気まずそうに理由を話し、最後に「・・・と、聞いてます」と答えた。
つまりこの人は上からRubyを採用すると言われたから使っているのであって、
特別Rubyに思い入れとか無いリーマンエンジニアなんだなあと分かった。
mix-inとかもLisp発のテクニックだし、RubyやってるならTaoに興味を持つのは普通だと思うんだけどなあ。

多分ガチで知らなかったんだろう。

254 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 10:48:40.40 ]
Lispの神様なんだっけ?w
何をしたのかわからないけどw

255 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:41:25.32 ]
竹内自演よくないよ

256 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:53:51.71 ]
lisperとは思えない頭の悪いコメントが並んでるな。

257 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 11:57:17.03 ]
竹内、と書いただけで発作のように変なレスが増えるのな

258 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:01:28.67 ]
英語版wikipediaには記事がないね
Lispの神様なのに
嘘が通用するのは日本限定か

259 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:05:49.39 ]
TAO/ELISは、携帯電話なんて話にならないほどのガラパゴスだった。
専用ハードに、ほぼ単一に近い言語環境。
電電公社ならではの採算も将来性も度外視したプロジェクト。

260 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:12:09.73 ]
英語版に竹内先生の記事がないなんて糞だな
寄付すんの辞めたわ
金だけ取って肝心の中身がないなんて



261 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 12:17:04.07 ]
(((((((((((((((囲碁、竹内の話題は荒れるので(禁止)で)

262 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/17(木) 12:58:19.16 ]
>>261
))))))))))))))

263 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:10:13.37 ]
とはいえ コンピュータ分野で日本人名ついたのは竹内関数くらいじゃないか
他になんかあったっけ?

264 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:34:55.87 ]
カリー化じゃないけど、竹内化といえば、すべてをたらい・・・(略

265 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:39:06.52 ]
竹内関数が最大にして唯一の功績ってのがな
神様だって名乗るにはちょっと寂しい

266 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:48:57.29 ]
まさか本人が神様と言ってるんじゃないだろ?言ってるとしたらかなり
傲慢だと思う。Lispの仏様という人もいたり、周りがヨイショしてるだけ
だろ?そんなに政治力があってLisp界のナベツネやスターリンなのか?

267 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:52:46.02 ]
少なくともゲルトミューラーとは名乗っている

268 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 13:57:33.47 ]
いつから何がきっかけで神様って呼ばれるようになったの?
誰が最初に呼び出したの?

269 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 14:03:12.87 ]
>>268
勝手に神様と持ち上げて、暫くしたら叩き落とそうとするのって、マスゴミがよく使う手だよね。

270 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 14:07:17.99 ]
むしろ持ち上げる側でしょ、この人は



271 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 14:15:04.49 ]
他にもあるぞ。二村射影とか、黒田正規形(Kuroda normal form)とか。

272 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:03:07.30 ]
lispのなかって、KCL作った人が有名なんちゃうん?
Practical Common Lispにもコメントを寄せてたけど。

273 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:18:01.74 ]
俺はCommon Lispは使わないんだけど
話題になっているの聞いたことない

274 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:30:28.26 ]
ECLやGCLの祖先だからな。一番最初のANSI Common Lisp処理系だといっても
爺しかもう知らんのかも。

275 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 15:44:22.67 ]
あの、たいていのものは俺達で実装しよう、としたがるGNUの連中が、
こんないいものがあるなら俺達で実装するのやめよう、といったぐらいなのにな、
KCLは(その結果KCLをベースにGCLが作られた)。

276 名前:デフォルトの名無しさん [2011/11/17(木) 15:51:11.61 ]
KCLからGCLが造られてマルチバイト文字対応はおざなりになったのか。

277 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:11:00.42 ]
UtiLispにしても、武蔵野通研にしても、ICOTにしても、
ソース出せないのが痛かったねえ。
出せたらもっと関連研究者増えてただろうに。
KL1のUNIX版が出てきたのも驚くほど遅かった。
UtiLispのC言語版公開も2000年代に入ってからじゃなかったっけ?
ソースコード公開されている処理系が他にあるんだから、そっちに流れちゃうよね。

278 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:31:24.96 ]
>>275
> あの、たいていのものは俺達で実装しよう、としたがるGNUの連中が、
そうなのか? guileだって最初はSCMをベースにしたし、ライセンスに問題が
なければ使えるものは使うんじゃないかと思ってた。
俺実装するのはフリーなライセンスでベースに出来そうなものが無い場合じゃないかと。


279 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 17:47:29.10 ]
GNU Emacsにしても、Gosmacsをベースにしていたしな。
その後、Gosmacsは商用になったから、コードを全部排除したけども。

280 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 18:34:55.25 ]
来年のlispの京都での会議って京都の先生の退官記念かなんかじゃないの?



281 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 06:56:28.65 ]
既出だったらスマン
Gambit REPL なんていう iPhone アプリあるんだね。

282 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 17:36:21.01 ]
Androidでも動いてるね。
Gambitベースなのは、Gambit for AndroidとScheme REPL Module。

他には、JSchemeベースのScheme-droid、Scheme REPL、
Clojure REPL、Kawaなどなど。

283 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 17:57:59.62 ]
palmの時代からそういうのはあったが
指でコードなんて書けるのかな

284 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 18:03:20.72 ]
遊び以外では、きっとBluetoothキーボードとか使って打ってるんだろう。

285 名前:デフォルトの名無しさん [2011/11/18(金) 21:40:53.05 ]
え?

286 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 22:03:42.62 ]
え?

287 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:03:27.26 ]
質問です。

((lambda (a) (a b)) c)

上のラムダ計算式の構文上の導出と
それに関連する抽象構文木を生成せよ。

という問題が分からないのですが、どなたかご回答いただけませんか?

288 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:37:25.06 ]
おれさまメモ。

lispの瘴気 - Togetter
togetter.com/li/215803

289 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:48:26.27 ]
>>287
宿題か?んなもん自分で調べろ

290 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:55:41.73 ]
>>289
竹内がblogに書きこんできたとか
くだらないことは嬉々として書きこむくせに
肝心のことは回答しないのな
何のための掲示板だよ



291 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:09:06.91 ]
竹内がblogに書きこんできたとか
くだらないことは嬉々として書きこむくせにとか
くだらないことは嬉々として書きこむくせに

292 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:10:07.71 ]
これがたらい回し

293 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:35:59.72 ]
竹内関数で音楽を生成するというやつ、
サンプルと同様のものを自分でも作って作業のBGMにしてみたいが
どうやればいいんだろう

294 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:36:54.86 ]
なぜここで聞く

295 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 00:53:46.51 ]
ひどいマッチポンプを見た

296 名前:287 mailto:sage [2011/11/19(土) 06:12:48.81 ]
どなたか本当に答えてもらえないでしょうか?
調べてもわからなかったので・・・

297 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 07:03:15.96 ]
>>296
講義でやってない内容は課題として出ないんだから、
素直にテキストとかで復習するとか、友達にノート見せてもらえば?
どうしても分からないなら、質問しに行った方が良い。ポイントも稼げる。

今後も分からないことがある度にここに聞きに来る気?
今ちゃんとやらないと、本当に講義に付いていけなくなっちゃうよ?


298 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 07:13:42.93 ]
テキストが糞訳だったりする場合だってあるだろ

299 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 09:15:34.57 ]
>>298 まずは自分の脳みそがクソだと認識しろよ

300 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 09:24:45.64 ]
誤訳で原書じゃないと
練習問題解けない本があるとか



301 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 11:07:12.51 ]
ちゃんとテキスト読めばわかるだろ。
そのレベルの問題なら。

302 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/19(土) 11:31:22.35 ]
>>293
MML で出力しといて適当なソフトで MID ファイルに変換すればいいんじゃないかな。

303 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:39:49.09 ]
>>288
GJ
京大の講義資料やってみてーなー。

304 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 14:45:50.92 ]
読んでいてちゃんと訳しているのか
心配になる日本語だよな

305 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 15:10:14.68 ]
日本語で読んでる奴が解けないのをみて
にやにやしてるんだよな
相変わらず性根が腐っていることで

306 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 16:39:13.19 ]
上のラムダ計算式の構文上の導出と
それに関連する抽象構文木を生成せよ。

回答例:問題の意味がわからない。

307 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 16:43:09.68 ]
さて、lisp とscheme とどっちをおすすめされますでしょうか。

私は、よく使うのがc,javascript,VB という、よくある、プログラムが本業ではないが、私個人や仕事のチームの業務改善にプログラム作成もするもんです。

自分にとってなじみのない分野の考え方のさわりでもしってみたいのです。

本がそこそこ充実しているcommon lisp が良いでしょうか。

308 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 16:46:00.25 ]
今からやるならclojure一択でしょ

309 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 18:24:30.56 ]
SICPは京大教授も認める糞訳か
読む奴が糞だから理解できないって言ってたアホは
どう言い訳するんだ?

310 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 18:31:59.07 ]
これはことあるごとに引用されるだろうな



311 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:11:50.00 ]
糞訳読んだせいで留年とかwww
ちょー可哀そうなんだけどw

312 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:41:59.93 ]
まあ、演習問題をとこうと思っても語彙が曖昧なものは
いくつかあったのは事実だと思う。<SICP

313 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:43:04.79 ]
語彙が曖昧じゃなくって
間違っているって言っているんだが

314 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:53:38.76 ]
そうそう間違っているというのはかなり重大なことかと

315 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:58:33.00 ]
こういう努力不足とは無関係の本質でないことで留年させるってどうなんだろう
今の時代に学部低学年でSICPやらせるのは
趣味の押しつけ以外の何物でもないと思うし

316 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:00:08.66 ]
京大入れて原書読めないとかマジありえんってのが前提なんじゃねぇの?

317 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:00:57.72 ]
東大名誉教授で原書読めない
和田さんはどうすんだよw

318 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:02:09.27 ]
極論を言ってるような感じもするけどな。京大の連中は知らんから
なんとも言えんけど、彼らの話が出てこないと。

319 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:03:24.63 ]
その間違ってる問題ってどれなん?

320 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:04:25.17 ]
和田さんってMITで強弁をとってたんだろ?
英語の使えない状態でMITで授業をするってありえる?



321 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:05:15.33 ]
やさしい英語は出来るんだろ
むずかしい文章が読めないだけで

322 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:05:47.05 ]
SICPの英語は難しくないよ。

323 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:06:30.29 ]
和田っちはSchemeで自動翻訳システム作ったんだよ。

ロボチックだろ、訳が。

324 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:08:58.14 ]
和田さんが京大入ったら留年するの?

325 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:16:27.02 ]
ja.wikipedia.org/wiki/%E5%92%8C%E7%94%B0%E8%8B%B1%E4%B8%80

いまwikiで和田さんを見ると、wikipediaの創設者が和田さんに見えて仕方がない。
あんな若い外人だったっけ?と。。。

326 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:27:06.20 ]
研究室の輪講で翻訳したやつとかなんじゃないの

327 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:29:42.38 ]
K&Rの石田訳のときにそんな話があったな。

328 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:31:54.09 ]
文体からしてそれはないでしょ

329 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:44:44.38 ]
SICPは多様なパラダイム教える為であって、必要なschemeの構文は
逐次前もって教えるってIPSJ会誌の教育コーナーで書いてたよ。

330 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:47:01.02 ]
パラダイム教える為に
東大名誉教授が読めなかった文章を
読めないってだけで
留年させる必要はないわけで



331 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:52:18.45 ]
ネタ混じりの可能性もあるからそんなにムキにならなくても

332 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:58:07.67 ]
SICP日本語訳disるために
ネタ混じりで馬鹿にしたと

333 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:00:09.77 ]
留年とか何の話?

334 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:01:04.37 ]
>>288

335 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:20:26.25 ]
実験、演習を一つ落としたくらいで留年しないってw
複数落とすと次の年履修がかぶって留年するはめになることあるが。
演習問題一つで単位落とすこともないし。

336 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:25:10.00 ]
一つじゃなくて
複数間違っているように
書いてあるけど

337 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 16:32:26.16 ]
>>335
実験単位が欠席2回で不可が出たりする(自分はそれで2留した、3年に行く必須の単位なんで)所もあるから実験とかレポートは結構厳しいものだとおもってた
病気療養でも斟酌してもらえなくて結構泣いたよ


338 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:37:41.65 ]
京大ってスパルタ系の大学だったっけ?なんかあそこって変人が多い
という印象が強いが。

339 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:20:05.17 ]
SICPの誤訳問題の例?
ttp://d.hatena.ne.jp/yad-EL/20091007/p1

340 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 16:47:22.83 ]
最近使ってなかったけどR6RSって評判どうですか?



341 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 17:22:54.30 ]
広まる前に次が出そう

342 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 19:21:54.22 ]
RnRSみたいな版名はナンバリングが前面に出てるから楽だな
面倒ならR4RSとかR5RSとか対応にしとけばいい
もうR6RS以降は暇な人向け実装だな
CommonLISP程に時間が掛かってはいかんでしょ

343 名前:デフォルトの名無しさん [2011/11/24(木) 01:46:33.31 ]
Gaucheについての質問です。

循環参照してるオブジェクト同士でメソッドを呼び合いたいのですが、
相互のメソッドを使うためにメソッドをuseしなければならず、useは循環して使えないので
うまくできません。

今のところ考えたのは、別モジュールに空のメソッド群を置いておいてそのモジュールだけを
useするという方法です。でも、これは冗長ですし気持ちわるいので、きっと他に良い方法が
あると思っています。

どなたか教えていただけないでしょうか?よろしくお願いします。

344 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 03:20:19.11 ]
>>343
一方をuseせずにautoloadにしておくって手がある。機能的に非対称で、
一方が他方に従属する感じの時は、従属する方をautoloadにすることが
おいらは多いかな。
でも機能的に対称な場合はautoloadで非対称なのが気持ち悪いんで、
別モジュールにdefine-genericをまとめて書いとくかなあ。そのモジュールを
インタフェース定義だと思えばそんなに悪くない。


345 名前:デフォルトの名無しさん mailto:sage [2011/11/24(木) 04:26:36.51 ]
Cのプロトタイプ宣言とディレクティブはスマートだよな
autoloadって評価されるまで何が起こるのか判らないのと
名前の二元管理という点であまり推奨できない

346 名前:343 [2011/11/24(木) 05:42:29.28 ]
>>344
回答ありがとうございます。こんな時間に回答がもらえるとは流石Scheme板なのか...。

う、やっぱり別ファイルに分けるのが良さそうですね。
というかそもそもオブジェクトシステムを理解してなくて
define-genericを知りませんでした...。define-methodは
これを自動でやってくれてるのですね。

347 名前:デフォルトの名無しさん [2011/11/25(金) 21:45:12.85 ]



348 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:10:38.02 ]
Luaが形なし言語で最速と聞いて
LispやSchemeからの変換機あるかなと思ったら
以外と誰も作ってない。Stalinと速度比較したかった。

349 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 13:41:07.50 ]
>>348 LuaJIT がだろ?
ついでに言っとくと Lisp 系言語は変数側に型がないだけで
変数に代入されるオブジェクトには結構厳しい型付がある


350 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 14:11:05.70 ]
Cから別の動的言語に吐き出すのが
あるからlisp->C->luajitは出来るが、
cluecc.sourceforge.net/
直接変換では無いので、C止めの1/10になりそう。

最近だと、llvm経由で言語間コンバートあるけど、やっぱり最適化は難しいのかな。
llvm-to-javascript
https://github.com/kripken/emscripten/wiki



351 名前:デフォルトの名無しさん mailto:sage [2011/11/26(土) 18:43:29.05 ]
>>348
SBCLの圧勝です。

352 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:00:34.74 ]
attractivechaos.github.com/plb/
shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php
shootout.alioth.debian.org/u64/which-programming-languages-are-fastest.php
fixnumとunsafe使えばsbclの方が速いかな?

353 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:03:50.29 ]
Luaの場合は小細工なしで速いから

354 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 00:57:49.97 ]
Scheme subset -> Luaならantlrあたり使って簡単にできそうなのになあ
Schemeでambとかマクロ展開してからLuaに変換できたら高速だし最高なのに

355 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 03:20:49.77 ]
lisperが妄言はいてる間にlua最速!
いいうさぎとかめですね

356 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:10:08.81 ]
小細工とか妄言とかえらい攻撃的な人が来てるね。
というより主張だけが必死で話を聞いてない
この2つの考察から
スルーするのが適当じゃなかろうか。

357 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:32:36.83 ]
小細工と妄言は別の人なのだが
妄想が激しい人なのな

358 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:35:02.00 ]
Luaは速度を速くするための
特別な書き方しなくても速いんだが

359 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 05:55:52.20 ]
luaはschemeと似てるけどcall/ccみたいな厄介なのはないし
言語実装が1つだから無駄なリソースをあまり使わずに進化できたんじゃないかな
あんま知らんけど

360 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 08:31:33.05 ]
機械語最速最強、とか言ってるのとたいして変わらんしw



361 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:41:29.83 ]
まあ、LuaとかJavaScriptが近年速度面で頑張ってるのは事実だし、
Lispも他に置いてかれないように頑張りましょう、ってことで。

RacketあたりはJIT採用してたはずだから、頑張って欲しいね。


362 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 12:54:12.80 ]
そういや、数理システムの人が CL の最適化は全然足りない、
って論文書いてたよね。 2009年だけど。
あのあとCLの最適化って少しは進んだのかな。

363 名前:362 mailto:sage [2011/11/27(日) 12:55:09.42 ]
これね
「An evaluation of Major Lisp Compilers」by Seika Abe
cl-www.msi.co.jp/solutions/knowledge/lisp-world/tutorial/compiler-eval-b.pdf


364 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 13:50:36.94 ]
>>362
商用の奴もダメって?
あとネットで(要約の)閲覧できるならリンク頂戴

365 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 14:03:59.93 ]
>>364
あと, cmucl のドキュメントの中で最適化を施すと危険な場合ってのが列挙
してあって, その部分の見直しがほとんどなされてない
コンパイラ製造技術は上がって来てるのでその辺の対応が強く望まれる
あと吐き出したコード見ればわかるんだけど peephole が壊滅的にだめ


366 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 17:17:23.09 ]
最適化しないでも
小細工すれば速くなるし

367 名前:デフォルトの名無しさん mailto:sage [2011/11/27(日) 23:11:26.72 ]
>>354
なんでわざわざ遅いLuaに翻訳しないといけないの?
Javascriptならブラウザ上で動くとかメリットあるけど。

368 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 01:41:29.85 ]
lisp cabinetでCCLを使っているのですが、
自作の関数をいくつか書いておき、起動時にそれらを自動的に読み込ませる、というのは
どこにどのような設定をかけばよいのでしょうか

369 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:08:39.13 ]
>>367
Schemeが亀のように遅いからだろ

370 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 02:55:02.84 ]
? 変なのがいついてるな。



371 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 03:08:05.18 ]
Luaが遅いとか無知すぎるわ

372 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 06:50:26.82 ]
Cへのトランスレータは以前から研究されているのに、なぜLuaへのトランスレータを性能の為に用意するの?
バニラのLuaでもCトランスレータを超える性能面のメリットがあるの?
……って意味じゃないの、「遅いLua」って言い回しは
本人に訊かないと本当の所は分からないが

俺は性能面ではなく、ClojureやNuのようなホスト環境とよく馴染むLispとしては興味あるけど
SchemeやCLのトランスレータは実物を見てからでないとあまりワクワクしないな

373 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 07:28:31.90 ]
>>364
要約というか本文が >>363 にあるよ
日本語。共通部分式の除去も定数伝搬もほとんどされてない、
ってのは悲しくなった。誰かCommon Lisp on LLVM作って。

374 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 10:56:48.73 ]
>>368
ホームディレクトリの.ccl-init.lisp。
そこで直接関数を定義しても良いし、適当なファイルをloadで読んでも良い。

Windowsだとバージョンでデフォルトのホームディレクトリの場所が違うから、

(translate-logical-pathname "home:")

を評価して表示された場所。


375 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:43:19.86 ]
Lisp -> C -> 機械語
Lua -> JIT -> 機械語
だとLuaの方が速いんだよな

376 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 13:59:02.19 ]
じゃあ tarai で比較するか

377 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:00:07.69 ]
実用性のない何の価値もないコードで比較してどうする

378 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:02:00.71 ]
>>377
文句言うなら代替案を出せよ。
代替案ない批判は何の価値もないよ。

379 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:08:36.34 ]
ここは核融合プラズマシミュレーションで

380 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:21:30.36 ]
shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=sbcl&lang2=lua



381 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:31:36.26 ]
>>380
Luaってどん亀Gaucheより遅そうだな


382 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:39:59.84 ]
型指定したコードと比べてどうすんだよ
馬鹿か

383 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:43:35.40 ]
出たものはとりあえず叩く人が居座ってるよな

384 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:44:43.14 ]
ドヤ顔で型指定しているコード持ってきて
Gaucheより遅そうって
馬鹿以外の何物でもないだろ

385 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:47:54.23 ]
何も出せずに文句しか言えない奴は哀れだねぇ

386 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:50:59.55 ]
馬鹿な発言しか出来ない奴よりはまし

387 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 14:59:20.86 ]
馬鹿はお前だろうw
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua

388 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 15:11:30.43 ]
なぜJITの付いてないバージョンのLuaと比べるんだよ

389 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:03:06.62 ]
luajit.org/performance_x86.html

390 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:41:59.63 ]
luajitでようやく比較対象になったレベルでしょ?
しかも組み込み用の糞言語w



391 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 18:52:17.99 ]
どん亀racketよりは速いお

392 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 19:56:21.62 ]
こんなところで油を打ってないで、一つでもマクロや関数の使い方
の理解を深めろって。^^; さもないと成長せんぞ。

393 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 22:37:16.30 ]
>>374
ありがとうございます!

394 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 23:59:23.73 ]
Gauche での JIT の実験結果からは今のところは導入は割に合わないと結論が出てる。
practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aVM%E3%81%AE%E6%9C%80%E9%81%A9%E5%8C%96%3aJIT%3a%E4%BA%88%E5%82%99%E5%AE%9F%E9%A8%93
素人考えだと二倍とか三倍くらいの速度になるなら甲斐がありそうにも思うけど、
ポータビリティや保守性を捨ててまでやるほどではないということみたいだね。

Gauche に限らず JIT を入れた方が速くなるのは百も承知なんだよ。
それでももっと大事なことのために導入しないという決断をしたんだから、
遅いじゃないかと言われてもそういうものなんですというしかない。

逆に Lua は速度の方が大事だという決断をして他の諸々を捨てたんだから
そっちはそっちで不満なところもあるだろうさ。 銀の弾丸は無いって奴だな。

ところで Lua のロゴマークのデザインってセイコーインスツルのに似てね?
www.lua.org/
www.sii.co.jp/

395 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 00:06:47.55 ]
LuaJITだと2〜3倍どころ10倍くらいになってるな
保守性はともかくポータビリティは問題なさそう

396 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 01:05:55.94 ]
repo.or.cz/w/luajit-2.0.git/tree/HEAD:/dynasm
確かにluajitは個別にしか対応できないな。
googleのv8,naclみたいにx86,x64,arm,llvmでしか動かない実装考えるグループも出てきてる時代だけど、
schemeは置いといて、clは人材流入がなくて難しいのかも。
haskellでもx86専用SIMDコードが埋め込まれたり、llvmに載せちゃえとかあがいてはいる。
普通のコードをJITやCPU最適化で高速化するタイプの人材流入から
cl/.net/ruby/perl/phpあたりは置いていかれてる感はあるかもしれないね。


397 名前:デフォルトの名無しさん mailto:sage [2011/11/29(火) 08:52:41.78 ]
.NET→MS実装は知らないが、MonoはLLVMバックエンドがある
Ruby→Rubinius
Perl→ParrotにLLVMプラグインがあるので、RakudoもLLVMを使える
PHP→PHP.rebootならHotSpot効くんじゃね?多分

398 名前:デフォルトの名無しさん [2011/11/30(水) 14:06:16.64 ]
lispのprin1やprincにある"1"や"c"は
何を意味しているのでしょうか?

399 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 16:53:13.14 ]
prin1 の 1 は適当につけただけだと思う。改行するのが print で改行しないのが
prin1 だったんだけど、read できるかどうかを考慮してさらに prin2 とか prin3
とかが作られていった。でも方言ごとに意味がバラバラだった。

princ は1文字しか出力しない方言があったので character の c なんだろうが、
そうでない処理系では無意味。


400 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 17:13:53.88 ]
そんなときはHyperspecを読め。1,2行程度で違いを説明してるから。



401 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/11/30(水) 18:11:09.37 ]
>>400
たぶん >>398 は名前の由来をきいてるんだと思う Yo

402 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 18:31:13.45 ]
>>398
ttp://hibari.2ch.net/test/read.cgi/tech/1309940115/355
質問者は同じ人?
回答になっているのか、わからんが。
まだ疑問があるなら軽く調べると英語でなんか出てくるんじゃないの。

403 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 20:20:15.60 ]
その名前の源流はn番目の評価結果を返すprog1とかprogn辺りだろうけど
適当すぎるんじゃないか?
さすがに挙動が違うのに番号変えただけは適当すぎるんじゃないか?
コボル人か?


404 名前:398 mailto:sage [2011/11/30(水) 20:45:35.38 ]
>>400-401
はい。動作は分かっていますが、由来というか名前をつけた設計者の考えを知りたいのです

>>402
いいえ、別人です


405 名前:デフォルトの名無しさん mailto:sage [2011/11/30(水) 23:21:17.60 ]
HyperSpec の内容でいいとおもうけどな。由来は John L White 曰く
prin1 は PRINt characters of 1 object.
princ は PRINt the Characters of some Object.
print は PRINT compound object.
だったはず。

406 名前:398 mailto:sage [2011/11/30(水) 23:27:54.17 ]
なるほど、分かりました
HyperSpecではそこまで言及されていなかったので勉強になります
CLHS: Function WRITE, PRIN1, PRINT, PPRINT...
www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm

407 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 08:52:19.28 ]
確かprin1が生まれた当初は
一引数関数でアトムしか印字できなかったはず。
いわばprint下請け関数。

けどLisp interpreterは任意数引数関数にするの簡単だから…

408 名前:デフォルトの名無しさん mailto:sage [2011/12/01(木) 11:55:32.37 ]
The history of print, prin1, and princ?
groups.google.com/group/comp.lang.lisp/browse_thread/thread/5addd533ea72207a/3d01f02a08dc0d5e
ググったら十年前の質問が出てきた。

409 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 01:20:36.63 ]
KMPが回答していたのですか
知りませんでした
なるほど

410 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 02:16:04.15 ]
渋谷lispみたいなイベントってもうないの?
ちょっと発表してみたい内容できそうなんだけど



411 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 02:41:55.54 ]
ついこの間あったばっかじゃねーか。
次まで待て。


412 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 03:41:06.82 ]
>>410
Shibuya.lisp主催でもメーリングリストだけ告知させてもらうにしても自分で動いて
みたらどうかな。公共施設だと場所の確保が難しそうだけど、年末・年始は日本に
戻ってくる人もいるかもしれないし、
地方帰郷組とかいて、変わったイベントになるかもね。具体的な開催予定候補日を
示して呼びかけだけはしてみたら良いと思う。反応が悪かったら取り下げるという
感じで。


集まりが悪くて、Shibuya.lisp主催では年一回という方向みたいだね。

過去一年間で気になった題名の記事
そろそろShibuya.lispテクニカルトーク第7回 やりませんか
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/feea5fbd70dfd899
Shibuya.lisp Tech Talk 開催頻度についての提案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/568065ebcde1be21?tvc=2
Shibuya.lisp TTの改善案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/63bde3be188a5404?tvc=2
第6回 PAIP読書会を開催します
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/c44c802420dc7a98#
>>411
どういう趣旨で発表したいのかわからないけど、入門者大歓迎でこじんまりとやるのも
いいと思うけどね。小規模でややクローズドなイベントでいいなら実家の一室を開放できる人も
いるでしょう。

低コスト会場の一例。
PCインフラは乏しそう。年末年始は休み。申し込み条件は中野区に関わりがある人
ttp://www.nices.jp/facility/zero/gakusyu.html
ttp://www.nices.jp/reserve/culture.html

413 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 09:30:23.56 ]
東京でしか無いから、残念だよね。

414 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 09:48:05.61 ]
小規模開催じゃ売名できないだろ

415 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 10:07:42.42 ]
コルーチンはリスト処理ではない
スタックやレジスタの処理だ
リストはメモリ割り当てが頻繁に起こって遅くなりそう

416 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 10:08:54.08 ]
誤爆

417 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 11:43:25.32 ]
>>413
道府県庁所在地でやれば5人ぐらい集まるんじゃないの?
文句を言わずに動け。
他分野の話だけど地方の県庁所在地で活発にやっている所があるよ。あと関数言語とプログ
ラミング教育とemacsと英語ぐらいのテーマでNPOってできるんじゃないのかね。原文(英語)
ハンドブックを教材に使って、辞書を片手にプログラミングさせるのが良いと思う。
全然訳せなくて使い方が分からない場合に手助けする感じだと人は伸びるよ。

あとttps://groups.google.com/group/Shibuyalisp/の集客問題は何かの足しになると思う。

418 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 12:41:06.91 ]
勉強会とかならいいけど、5人相手に発表とか悲しさ炸裂だろ。

別にShibuya.lispじゃなくて、普通にネットで発表しても、
興味深いもの、ことなら反響あると思うけど。
この前の竹内関数とか盛り上がったし。


419 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 12:49:09.04 ]
いつどこの勉強会で盛り上がったん?

420 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:18:25.51 ]
なんで勉強会が盛り上がるとかいう話になるんだよw

この前takを利用して音鳴らすってのが、Lisp界隈で話題になって盛り上がってたでしょ。
元ネタの所に御大降臨したりして。面白いものならどこで発表しても反響がくるんじゃない?
って話だよ。

盛り上がってる勉強会とかなら熊本とかなんじゃないの? よく知らんけど。
本人たちは楽しそうにやってるのは分かる。




421 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:35:41.28 ]
今、勉強会の話しているからだろ

422 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 13:36:58.78 ]
Lisp界隈は面白いことしている人が
表に出てこないな

423 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 15:11:27.27 ]
>>418
形態は勉強会でもなんでもいいでしょ。

ネットで発表して得る物と人前で発表して得る物って違うんじゃないの。
人前で発表して得る具体的な物って言えないが、ネットコミュニケー
ションonlyの限界ってあると思う。

年1回でもいいから地域で定期的にやって団体をつくれば、偉い人を呼び
やすいし、他県勉強会の遠征もしやすいでしょ(車出す・出さないとか)。

ヘタレlisper/schemmerでいいから代表として誰かが立てば、忙しい
lisper/schemmerも参加しやすくなるんじゃないの。代表に求められるのは、
lispの能力より雑用処理能力だよね。

424 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 22:21:06.15 ]
何故ハイパーカードは死ななければならなかったのか - karasuyamatenguの日記
d.hatena.ne.jp/karasuyamatengu/20111130/1322671954
>SK8というNetwton向けのLisp Machineを殺したのはジョブスに違いない

yebo blog: なぜ、HyperCardは死ななければならなかったのか
yebo-blog.blogspot.com/2011/12/hypercard.html
>彼は、ニュートンのLispマシン化させるSK8の死の背後にいたことは間違いない。

この点がよく分からないのですけど、newtonとlispにはどういう関係があるのですか?

425 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:31:00.58 ]
往年のMCLファンの俺が答えるよ。
en.wikipedia.org/wiki/SK8

426 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:44:48.44 ]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄l/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∧_∧
    ( ´・ω・`)     ∧_∧
    /     \   (    )何言ってんだこいつ
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ 空気読めよ   \|   (    )
  |     ヽ           \/     ヽ. オマエ馬鹿だろ
  |    |ヽ、二⌒)        / .|   | |
  .|    ヽ \∧_∧    (⌒\|__./ /


427 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:47:00.11 ]
これ、昔からソース公開してるんだけど、
sitアーカイブだからMacないと展開に苦労するし、
ライセンスはここ読めってページがなくなってるしw
sk8.research.apple.com

428 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 00:50:13.95 ]
つ ttp://www.vector.co.jp/soft/dl/win95/util/se140653.html

429 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:14:05.58 ]
普段の雑多な処理(bashで書くと64行以上のスクリプト)ってlisp(schemeも可)で書く? bashで書く?
あと64行未満だったらどうされますか? 行の量レベルによっての取り組み方の違いとかをご教授して
いただけませんか?
LispでもLinuxディストリ間ぐらいだったら可搬性も楽に高められるかな? Lispだと他の人が読めないよ
というクレームが来たら最悪違う言語で書き直せば良いんだよね。そのスクリプトは製品ではなく数ヶ月
後までに書き直しておけば問題なしという条件で。

あと処理のアイデア・メモはみんなlispで書いちゃうのかな?

430 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/05(月) 20:09:55.71 ]
>>429
64行ってのはどこから出てきた数値?



431 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:13:34.54 ]
ざったろくじゅうし

432 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:15:41.60 ]
(expt 2 6)

433 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:44:29.38 ]
(ash 1 6)


434 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 23:09:55.33 ]
>>429
UNIXの得意なことはshでやる。
fileやprosessにまつわるバッチ処理。

435 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 00:28:56.29 ]
>>429
#!/bin/perlとか書くくらいならgoshする
パイプつなげてガリガリとコマンドを呼び出してステートチェックするならbashで書くわ

書きやすい方の道具使うべきなんであってLispありきってのは間違いじゃろ

436 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 02:26:25.51 ]
せっかくだから、どんな小さなスクリプトもLispで書くことにするぜッ

437 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 07:30:19.88 ]
>>435
bash等と比べると書きやすいで言えばLispだし、ブログのネタにしやすいのもlispでしょ。
つまりはLispありきでいいんじゃないか。

438 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:39:58.04 ]
Lisp 1000tips wiki つくろか

439 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 17:54:14.86 ]
>>438
期待してる。

440 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:05:07.89 ]
common lispのmapcにあたるのは
schemeではmapになるのでしょうか?
そして、common lisp のmapcarにあたる関数は何でしょうか



441 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:27:18.03 ]
mapc => for-eachでmapcar => map。
ただし、mapcと違ってfor-eachが返す値は未定義。


442 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 00:41:59.82 ]
ありがとうございます 勘違いしていました
気になったのですが、common lispのdolistとmapcは何が違うのでしょうか

443 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 01:16:57.98 ]
使う場面とできることは似たようなものだけど、根底にある思想が違う。
dolistはより手続き的。リストの要素で変数を束縛してブロックを実行する。
mapcはより関数的。リストの要素に関数を適用する。

cl.cddddr.org/index.cgi?%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB#H-xy6b4yo1bpqy


444 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 01:34:56.54 ]
>>443
すっきりと腑に落ちました。
これで使い道に迷うことはなさそうです。

445 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 02:18:53.89 ]
ごめん。ひとつ大事なこと思い出した。

dotimesとかもそうなんだけど、dolistは

www.lispworks.com/documentation/HyperSpec/Body/m_dolist.htm#dolist
> It is implementation-dependent whether dolist establishes a new binding of var
> on each iteration or whether it establishes a binding for var once at the
> beginning and then assigns it on any subsequent iterations.

って決まってて、処理系によってはループ変数が破壊的に変更される可能性がある。
そういう場合にクロージャとかでその変数を捕捉すると悲劇が起こる。

具体的にはこう(↓)なる。

blog.practical-scheme.net/shiro/20060110-for

mapcは引数で渡すからこの問題は起きないはず。これは覚えておいた方が良いかも。


446 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:05:04.37 ]
動作がよくわからないので質問させてください。

(case 0 ((0) 1))
→ 1
になるので
(case 0 (((if #t 0)) 1))
→ 1
になって欲しかったのですが
→ ()
になってしまいます。

case が eqv? で比較してるので
(eqv? 0 (if #t 0))
が #f になるかと思ったんですが、これは #t になります。

case 文の 条件部分(呼び方がわかりません。)に
if 文を使うことはできないんでしょうか?

447 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 12:21:55.04 ]
>>446
(define a 0)
(case 0 ((a) 1))
-> ()
(case 'a ((a) 1))
-> 1

448 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:06:31.53 ]
>>446
case の条件部分はただのデータで、評価されない。
なのでその書き方は 0 という整数と (if #t 0) というリストを比較している。


449 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:18:39.48 ]
>>446
今度からそういうときはcondを使ってね

450 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:30:54.67 ]
ウズウズ



451 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 21:34:09.97 ]
>>447-449
レスありがとうございます。
condを使えば思ったとおりに動かすことが出来ました。

452 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 19:26:16.97 ]
この英語2chはなんなんだ。微妙に活気があるんだよなあ。
ttp://dis.4chan.org/tech/

453 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 19:36:34.40 ]
海外のオタクが双葉を元にしたサイトだよ

454 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 00:23:20.84 ]
schemeで画像扱う時って普通にvectorのvectorにするものなの?

455 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 03:12:38.88 ]
u8vectorで

456 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 23:59:47.79 ]
M.Hiroi's Home Page / xyzzy Lisp Programming
www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp02.html

listの説明の図がわかりやすいです
画像ならまだしも、テキストでセルの要素を表現できることに驚きました
このような図を作成するにはどういうツールを使えばよいのでしょうか

457 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 00:18:56.26 ]
そのサイトの管理人に聞いたほうが早いんじゃね?

458 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 01:33:40.73 ]
まあたぶんテキストエディタで手書きだと思うけど

459 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 02:15:31.71 ]
xyzzyの罫線モードとかじゃないの

460 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 04:05:42.47 ]
lispはHaskellなんかと比べるとちゃんとした関数型言語じゃないって言う人がいますが、どうですか



461 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 04:49:30.79 ]
>>460
副作用のある関数が普通に書けるからじゃろ


462 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 12:42:42.40 ]
Haskellは副作用をする部分を隔離してるもんな。そこで副作用させてる
から、あるなし論争があるけど、ML系でも異色でちょっと取り扱いづらい
けど人気があるよね。モナド信仰なんだろうかな。サクサク作っていける
部分もある。

463 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 17:43:52.85 ]
c++とlispはマルチパラダイム言語

464 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 18:04:26.40 ]
プログラミングGauche の第15章 テキストの構築を読んで
sxml形式で記述した外部ファイルを読み込み
xmlに変換して他のファイルに出力したいと思いました。
ですが、方法がわかりません。

sxmlのデータが*sxml-data*にあるとき
(use sxml.serializer)
(print (srl:sxml->xml *sxml-data*))
とすればxmlのデータを整形して出力することと、
返還後のxmlデータが*xml-data*にあるとき
(with-output-to-file filename
(lambda ()
(format t "~A" *xml-data*)))
と書くとfilenameで指定したファイルに*xml-data*が書き込まれるだろうことはわかりました

ここで行き詰まったのは外部sxml(*.scm)を読み込んで変換し出力するという処理の
とくにはじめの部分と処理全体です

(with-input-from-file filename...)
で読み込んだファイルを一文字ずつや一行ずつ処理できるのはわかったのですが、
一度に読み込む方法はあるのでしょうか

最終的には
karetta.jp/book-node/programming-gauche/197708
の「SXMLでは次のとおりに記述します。」直後のコードを保存したファイルを読み込み、
それを別ファイルにxmlとして保存する関数を作成したいのですが
可能でしょうか?

465 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/11(日) 20:04:04.39 ]
>>464
read

466 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2011/12/11(日) 20:28:21.93 ]
>>460
関数型とは何かという明確な定義は無いので、ちゃんとしたというのがどの程度のことを言うのかで判断が分かれると思いますね。
Haskell が「純粋関数型」と呼ばれることからもわかるように、その逆の純粋でない関数型もあるわけで。
純粋でないことを以ってちゃんとしてないというのであれば「そうですね」という感じかなぁ。

純粋とそうでないのとを分ける基準があるのかもよくわかりませんが、
あたりまえに副作用を起こせるのを純粋とは言えないのは間違いないでしょう。

そもそも LISP は何でも有りの自由なところが特徴だし、
Common Lisp や Scheme はマルチパラダイムを標榜してもいるので、
LISP という言語が関数型としてどうかという問いはあまり意味がないですね。

あなたがそうしたければ純粋関数型的な語彙を組立ててそのスタイルを貫く自由は与えられています。

467 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 23:36:25.04 ]
>>465
ありがとうございます

468 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 06:30:20.68 ]
lispの特徴はS式構文でしょ。

469 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:33:48.29 ]
昔はGCとかSchemeの継続とか強力なOOシステム(Flavors, CLOS)も特徴だったけど、
今は他の言語でも見られるしね。S式+マクロはLisp族だけだね。

470 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:34:43.39 ]
ADTを直接記述出来る事かと。



471 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 14:14:41.71 ]
リストの操作で質問します
(val (lis1) (lis2 (lis3)))
このリストに別のリスト(lis4)を追加して
(val (lis1) (lis2 (lis3) (lis4)))
のようにlis2のリストの末尾に追加したいです
そのあとで追加したリストも
(val (lis1) (lis2 (lis3) (lis4) (lis5) (lis6)))
というふうに後ろに挿入したいのですが、
どういう操作をすればよいでしょうか

472 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 14:57:15.97 ]
>>471
そういうことをやりたくなるってことは、リストが分かってないってこと。

473 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:27:28.75 ]
深いすなあ

474 名前:デフォルトの名無しさん [2011/12/12(月) 21:30:27.25 ]
(set-cdr! (last-pair (caddr ls)) (cons ls7 '()))

475 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:17:16.53 ]
(setq l '((1) (2 (3))))
(defun append-tail (l m)
(append (list (first l))
(list (append (list (first (second l)))
(list (append (second (second l))
m))))))

CL-USER> (append-tail l '(4))
((1) (2 (3 4)))
CL-USER> (append-tail (append-tail l '(4)) '(5))
((1) (2 (3 4 5)))
CL-USER> (append-tail (append-tail (append-tail l '(4)) '(5)) '(6))
((1) (2 (3 4 5 6)))

476 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:24:46.15 ]
>>474
意図した通りに動きました!ありがとうございます


477 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:31:47.17 ]
>>475
副作用無しのその動作も魅力的です
ありがとうございます

478 名前:475 mailto:sage [2011/12/12(月) 22:45:13.92 ]
ちなみにこの形だとpush, popが使えて楽だよ。
CL-USER> (setq n '(((3) 2) (1)))
CL-USER> (push 4 (first (first n)))
(4 3)
CL-USER> n
(((4 3) 2) (1))
CL-USER> (push 5 (first (first n)))
(5 4 3)
CL-USER> (push 6 (first (first n)))
(6 5 4 3)
CL-USER> (push 7 (first (first n)))
(7 6 5 4 3)
CL-USER> n
(((7 6 5 4 3) 2) (1))
CL-USER> (pop (first (first n)))
7
CL-USER> n
(((6 5 4 3) 2) (1))

479 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:52:01.53 ]
>>471
リストをひとつのオブジェクトに見立ててるように見えるけど、
そういう場合は、各要素へのアクセサを定義した方が良いよ。
単純になるし、保守性が良くなる。

あるいは、素直にクラスとか構造体、レコードで定義した方が楽。
単なる演習とかならどんな書き方しても良いと思うけど。

480 名前:475 mailto:sage [2011/12/12(月) 23:42:26.08 ]
>>471
具体的に書いてよ。
中高一貫校の中学1年生が英作文の問題を必死こいて解いている子に関係代名詞を使うとシンプルな文章になって
読みやすいよと言われても語彙や文法を知らないのですよ。Web参考書は揃っているんだけどw



481 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:18:03.51 ]
>>480
詳しく説明するのが面倒だった。食いついて来たら説明する予定だったけど。
てーか取り敢えず落ち着けよ。明後日の方向に弾飛んでんぞw

(define (value-name v) (cadr v))
(define (value-value v) (caddr v))
(define (set-value-name! v x) (set-car! (cdr v) x))
(define (set-value-value! v x) (set-car! (cddr v) x))

(define *x* '(value "x" ()))

(value-name *x*) ;=> "x"
(value-value *x*) ;=> ()

(set-value-name! *x* "y")
(set-value-value! *x* (append (value-value *x*) (list 0 1 2)))

(value-name *x*) ;=> "y"
(value-value *x*) ;=> (0 1 2)

こういうイディオムのこと。クラスやレコードはそれらのWeb参考書読んでくれ。

482 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:23:05.99 ]
いや、イディオムってのも変か。パターンとか常套手段でひとつ。

なんでもリスト使うようなプロトタイプを最初に作るときとか、
後でデータ構造を差し替えたり、コードの可読性を上げるためにやるでしょ?

483 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:47:15.15 ]
Schemeで書いたのは、いじめか。

Python使いにRubyで答えればプログラマとしての幅も広がるし、良いことづくしだ。

484 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:52:58.74 ]


485 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 00:56:25.81 ]
いやいやいやいや。>>474の人もSchemeだけど、「動きました!」って言ってんじゃん!
そもそもCommon LispともSchemeとも書いてないんだから。

マジレスすると、CLerだった場合はset-car!をrplacaに読み替えれば分かると思います。
普通は汎変数使うと思うけど。

486 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 03:25:02.31 ]
schemeは教養だから
CLerは当然schemeぐらい読めるから

487 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 07:57:52.15 ]
Cは教養だから万行デバッキングできるよね

488 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 09:49:08.78 ]
racketはset-car!がありません

489 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 09:50:25.93 ]
set-mcar! があるだろ。

490 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:15:12.19 ]
Lisp方言で良いなら教養としてarcで書くのもあり?
gaucheに接近するかと思ったら全然ダメだな。
arc> (time (tarai 12 6 0)) ;; arc3.1
time: 11241 msec.
arc> (time (tarai 13 7 0))
time: 83869 msec.

> (time (tak 12 6 0)) ;; Racket
cpu time: 197 real time: 197 gc time: 0
> (time (tak 13 7 0))
cpu time: 1480 real time: 1481 gc time: 0
> (time (tak 14 8 0))
cpu time: 11046 real time: 11047 gc time: 0

gosh> (time (tak 12 6 0)) ;;gauche
; real 0.715
; user 0.710
; sys 0.000
gosh> (time (tak 13 7 0))
; real 5.214
; user 5.220
; sys 0.000
gosh> (time (tak 14 8 0))
; real 38.301
; user 38.060
; sys 0.000



491 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:06:59.33 ]
Racket 速いな。

492 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 09:29:29.96 ]
そりゃ、JIT搭載だもの。

docs.racket-lang.org/guide/performance.html#%28part._.J.I.T%29

493 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 10:04:57.25 ]
やだ Racket 格好いい……

494 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 13:17:09.14 ]
既出した気がするけどこういうのもあるよ。
ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log1/Gambit_20benchmarks.html
ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log2/Benchmarks.html

495 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:59:12.22 ]
387 名前:デフォルトの名無しさん[sage] 投稿日:2011/11/28(月) 14:59:20.86
馬鹿はお前だろうw
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua

496 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 17:39:51.40 ]
lisp.soup.io/post/8879455/Still-from-Serial-Experiments-Lain-via-lain
これって、life関数を呼び出すたびにworldを作っているのか…


497 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 18:37:41.57 ]
>>488
sicpプラグインではあるけど、set-mcar!をエイリアスしてるみたい

498 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 21:43:56.97 ]
Lisperがgcc on LinuxでCの手習いで何かの分野の処理をやるとしたら何の分野がいいかな?
コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。

499 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 22:48:59.80 ]
LISPインタープリタの原始的なやつを作る。

500 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 23:05:37.17 ]
つまらん



501 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2011/12/16(金) 23:17:28.13 ]
そしてその LISP で本格的な LISP 処理系を作る。

502 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 23:20:12.36 ]
つまらん

503 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:11:27.04 ]
>>498
マルチ死ね

504 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:39:57.42 ]
>>499
だからマゾいの嫌だって言っているでしょ。インタプリタならlispで書いた方が楽でしょ。
Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。
>>501
つまらないし、目的がみえてこない。

505 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:47:17.36 ]
自分で考えたら?

506 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:55:38.30 ]
>504
おまえは499を否定しているがハードウェアべったりの処理系でGC付き言語を組むとかなり楽しいのだが。
GCは奥が深いぞ

507 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 06:08:02.26 ]
>>504
どうせなにも出来ないから黙っとけ。

508 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 13:38:40.94 ]
>>504
マゾいのが嫌だっていうから原始的なやつって書いたのに。
そもそも手習いが目的なのに「〜の方が楽」とかアホだろ。


509 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:07:58.23 ]
>>504
>Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。

はい

510 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:19:37.39 ]
必要な時に出来ないのは、偏見ではなく無能。



511 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:03:36.80 ]
プログラムを組むときに一番大事なのは用件を最短で満たせる適切な言語を選ぶことだけど
プログラムを楽しく組む為に必要な事は「いつでも初心でいられる」事だと思っている

そんなわけで>>504 はこの土日もグズグズすると感じてしまうのであった。

;;;仕事でもプライベートでもプログラムを書くのを楽しくするコツは2行目ね


512 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 02:20:46.27 ]
ずいぶん参考になった
ほんとうにありがとう

513 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 07:27:48.68 ]
schelogってGPLなの?
schelogをrequireしたらソース公開しないといけないの?

514 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:12:28.02 ]
wiki.call-cc.org/eggref/3/schelog
これを見る限りではLGPL
LGPLは(GPLも)プライベートな利用では何の条件も要求しない
頒布する場合に条件が要求されるが、具体的な条件はお前のコードとSchelogを「リンク」する方法による

515 名前:デフォルトの名無しさん [2011/12/19(月) 15:37:56.70 ]
LLGPL(Lisp-LGPL)とBSDライセンスのそれぞれのライブラリを使うアプリケーションを作り
(clispとsbclの2パターン)
lisp処理系をインストールせずに使えるよう
実行バイナリ化して配布しようと思うのですが、
配布する際のライセンスは結局どうなるのでしょうか
lisp処理系とライブラリのライセンスそれぞれの影響がよくわかりません

使うのは↓のライブラリです
www.cliki.net/Clack
www.cliki.net/CL-PPCRE

516 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 23:47:34.98 ]
>>515
cl.cddddr.org/index.cgi?%E8%89%AF%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F#H-2v8nnc63s7pll

ライブラリについては、手を加えなければ、ライセンスに影響を与えない。
その場合、アプリケーションには自分の好きなライセンスを設定できる。

ただ、含まれるライブラリのバージョンのソースコードの入手手段の保証や、
それぞれのライブラリのライセンス本文の提示とかはしないといけないから、
その辺はしっかり対応しないといけない。

ClackはGitHubだから、対応するリビジョンのリンクでも明記しておいて、
あとはそれぞれのライブラリがどのライセンスを採用してるのかを明記して、
LLGPLとBSDライセンスの本文を含めれば良いんじゃないのかなー。あと著作権表示。


517 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:32:23.27 ]
>>516
まさに探していた説明です
アプリケーションには任意のライセンスを設定できるのですね
そのうえで使ったライブラリのソースコードのありかとライセンスを表示する
すべきことがわかりました

518 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:55:11.33 ]
ということは
biglooやgambit-CでGPLなライブラリをuseやrequireしたものをCに変換して
Cをバイナリーにした場合はソース公開の義務はないってことでいいのかな

519 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 03:17:22.44 ]
GPLはリンクの方法を区別しないから(少なくともFSFはそう思ってる)、
それ普通にGPLに感染すると思う。

www.gnu.org/licenses/gpl-faq.ja.html#IfLibraryIsGPL

LGPLならライセンスは影響を受けないと思うけど、
静的リンクだから全ソースコード公開の義務はあると思う。

ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License#LGPL.E3.81.AE.E7.89.B9.E5.BE.B4

LLGPLなら確か大丈夫なはず。ただ、ライブラリのコード配布は必須。
最後の段落。

opensource.franz.com/preamble.html


520 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 03:30:15.93 ]
chickenはeggの分割コンパイルできるんじゃないの?
動的リンクにできそうな予感が



521 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 11:04:08.18 ]
>>519の最後のリンク先を見ると
LLGPLのライブラリを静的リンクして実行ファイルを作った人は
使ったライブラリのソースコードを(公式サイトだけではなくて)独自に配布しなければならぬ
こう理解したけどこれでいいのかな

522 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 12:04:43.34 ]
プラグインとかならともかく
動的リンクでも根本機能として必要ならダメだよ
使うのをきっぱりやめた方が早い


523 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 12:38:42.75 ]
>>520
できるの?
初めて聞いたんだけど

524 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 14:05:09.96 ]
>>522
それはGPLの話(>>518)だよな?
LGPLの4.d(LGPLv3の場合)では「"Minimal Corresponding Source"と"Corresponding Application Code"の配布」と
「適切な共有ライブラリ機構の使用」のどちらか一つの実行が条件だから
後者を選択した場合はソースの配布は義務付けられないと思うが

525 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:01:16.33 ]
>>521
入手できる手段を保証すれば大丈夫じゃないかな。アクセスできるかが重要なので。
自分は、GitHubとかなら特定リビジョンのリンクの提示だけでいけると解釈してる。
もちろん、配布元が閉鎖とかしちゃったら、自分で配布しなくちゃいけない。
この辺はGPLやLGPLの思想を汲んでおけば、そう大外しはしないと思う。

もちろん、会社の商売でやるなら法務と相談必須だけど。


526 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:23:32.92 ]
一応根拠補足。

LLGPLの最後の段落に"in accordance with the terms and conditions of the LGPL"とあり、
LGPLの6.dでソースコードを同等のアクセス手段、同じ場所で提供すれば良いとされているため。
ダウンロードページに両方のリンクを張っておけば、多分これを満たすと思う。

sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License


527 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:52:20.72 ]
心配ならソースのzipを読み込んだコアを配布すれば?
ある関数実行したらファイルに書きだすようにしといて。

528 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:57:29.14 ]
そんな面倒なことするくらいなら、普通にソースも一緒に配布するだろ……。


529 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:08:30.14 ]
元のお題(>>515)が実行ファイル一つだけにしたいというものだから。

530 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:16:51.41 ]
READMEすら同梱できないとか、>>515のどこにそんなストイックな条件が書いてんだよw
まあ、ある意味そういうのも厨二心をくすぐられてwktkするけど。




531 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:43:22.27 ]
気になったんだけど、common lisp絡みの案件で
ライセンス上問題となった事件は何かある?
それとfranzがllgplをわざわざ設けた経由が知りたい
llgplでなくて修正BSDで実用上十分だと思うんだけど
裏事情があるのかしら

532 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 18:11:50.54 ]
ソースコードの再利用について考え方が全く違うもので十分という意味がわからない。

533 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:56:24.51 ]
GPL系と商用のデュアルライセンスの話なのか?

534 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:11:56.89 ]
名言来たな。「LLGPLじゃなくて修正BSDで十分」
どうみてもコピーレフトへの宣戦布告です本当にありがとうございました。

535 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:53:08.91 ]
GoogleがV8に修正BSDを採用した経由が知りたい
修正BSDでなくてUnlicenseで実用上十分だと思うんだけど
裏事情があるのかしら

536 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 12:12:10.46 ]
>>531
修正BSDを開発者の視点から考えてみるといいよ
修正BSDでライセンスされているプログラムは、著作権表示の点をクリアすれば
ソースコードを公開しなくてもいい
そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
他の開発者からするとそのプログラムのコードを見る機会がなくなる
誰にとってそのライセンスがいいものかは立ち位置によって変わることには
注意したほうがいいかも

537 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 14:13:00.71 ]
>>536
>そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
いまどきスパゲッティコードを書いているわけでもないだろうよ。
>他の開発者からするとそのプログラムのコードを見る機会がなくなる
見る機会がなくなるのも嘘な気がするなあ。最新技術としての賞味期限過ぎたら
公開しようかなと考える人・団体はかなり存在するんじゃないの。

BSDスタイルライセンスの良いところは公開しない・するといつでも自由に切り替えられる
ところだよ。

538 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 18:38:52.63 ]
>>537
NDAで公開出来ない物があるからじゃろ、自分のコードが綺麗でないから公開したくないってのとは別の問題。


539 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:06:49.95 ]
>>537
納入するときはツールを使ってわざとスパゲッティコードにしてる俺が来ましたよ

540 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 02:15:29.56 ]
>>539
そのツールは可逆性があるの?
鍵がないとそのツールを使えば可逆できるなあ。



541 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 02:29:56.35 ]
何を言ってるんだお前は。

542 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:37:11.95 ]
立て続けに見当外れなことを言ってる奴は釣ってんのか?

543 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:00:00.91 ]
>>539
マクロを全部展開するだけでもスパゲッティー化できるよね
前に見たbiglooのソースもあきらかにやってたし


544 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:16:02.39 ]
おれもコードランダム化させるの作ったよ
自分でハックしてみたが方式が判ってても追跡困難だった
もう二度とやりたくない

545 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 17:53:04.64 ]
コードランダム化のコードを
誰か公開したりしらいいなあ

546 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:06:20.31 ]
実行速度を落とさないで難読化なら
変数や関数の名前をランダムなものに変えたり
実行されない関数を追加したり
あと他に何があるかな


547 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 19:33:11.80 ]
実行されないはずの意味ありげな処理追加。
実行されたら、それはそれで異常検出。

548 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:38:44.07 ]
>>546
やっぱりマクロの魔術師でしょう :-)

これRubyちゃうん?
いやCommon Lispさ(ふっ)

とか

549 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:44:35.94 ]
納入先がWindows使ってたら、改行コードをUNIXの改行コードにする
改行してしてなくてもいい場所は改行を削除
コメント部分の日本語を全部文字化けさせる
コメント部分に実行ファイルの機械語をASCIIコードに変換して追加
diffの差分ファイルを納入

550 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 23:03:45.81 ]
それ途中難読化じゃなく処理系を相手にチキンレースしてるだけでは



551 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 23:18:29.70 ]
納入しなければならないのはきちんと動くけど人間が読めないコード
相手に解読されたら仕事が来なくなる

552 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:25:44.16 ]
せめてLispのケースで話して(><)

553 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:35:06.37 ]
LISPプログラムを他人に渡すなんて、大学の研究室の後輩に渡すくらいしかなかった
当然、究極のスパゲッティにして渡したけど

554 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:37:44.49 ]
カレーが少し余ったんでスパゲティ茹でて一緒に炒めたらおいしかった

555 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:59:19.41 ]
>>553
先輩のプログラム、センス悪いな。糞じゃん
あのひとエラソーにしてるだけだったよな。いなくてせいぜいだ
とか言われてるかも。

556 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:00:16.59 ]
>>554
次は、麻婆豆腐にスパゲティ入れて上にチーズをかけてオーブンで焼いてみ。

557 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 02:05:49.39 ]
>>555
そのプログラムを即座に改良できるのが俺だけ という優越感

558 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:45:54.90 ]
まあいいんじゃないの
自分で一から書く気になってくれれば

559 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:55:01.34 ]
先輩がせっかくテーブル拭きプログラムを書いたのに姑のようにまたテーブル拭きプログラムを書いていいか、悩まないか。
そういう先輩に限って卒業も飲み会に参加して、「まだあんな(俺の)プログラムを使っているの」とバカにしつつ顔が
喜んでいたりするんだよなあ。

560 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 22:32:46.08 ]
難読化したソースなんか納入したら検収で落とすだけだが。
当然納入できなかったんだから違約金は払ってもらう。



561 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 00:55:59.54 ]
お前みたいな奴はマ板に行ってくれ。

562 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:09:07.85 ]
ちょっと遊びで処理系実装してるのだけど
symbolとquoteの実装方法で参考になるコードどこかにないでしょうか
mosh?


563 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:19:30.02 ]
何で実装しているのか、書けよ

564 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:57:54.59 ]
c

565 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 06:58:35.92 ]
ホビットが
#define long SCM
とかしててびっくりした

566 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 07:13:22.47 ]
何を参考にしたいのかによるな。
原理的なとこ知りたいならミニマルな処理系がいいんじゃない? tinyschemeとか。
つーてもsymbolは単に辞書に登録した文字列だし、quoteの処理はもっと高レイヤ
なのでLispで書いてあるevalの実装あたりを見ればいいんじゃないか。

567 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 11:29:44.73 ]
Schemeって他の処理系の定義重複部分をコピペすると書く所ほとんどないのか。

568 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 11:41:02.55 ]
>>562
mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.html#%_sec_4.1

初学者がqouteの処理だと思っていることは、ほとんどreadがやっている。


569 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 15:35:57.68 ]
>>568
SICPって何回くらい読むもの?
再来年の年初めぐらいから読み始めようかな。

570 名前:デフォルトの名無しさん [2011/12/24(土) 16:09:36.63 ]
難読化なら一度速度優先でコンパイルしてアセンブラをはかせる。
そのコードを今度はCなりLISPなりに戻してやればよいじゃないかと思う。

動けばよいコードを納品って契約ならコンパイラでアセンブラはかせて、
それをそのまま納品でよいじゃないかともおもいます。

昔移植でアセンブラからCへコンパイルするコードは作ったことがあります。
半自動でしたけど9割は自動化して移植してました。



571 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 16:19:20.59 ]
>>570
環境って何?

572 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 22:10:55.29 ]
環境は組み込み。
68アセンブラからCへコンバート。
IOは仮想化して対応した。

なのでアセンブラまで落とせればそれを高級言語に再変換してあげれば、
それだけで難読化しているようなもんだと思うよ。

動作の保証はテストを書いておいてそれを通すとある程度担保てきると思います。

573 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:34:26.37 ]
いま難読だい?

574 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:37:57.62 ]
新しい構文を作るマクロって可読性下げてるよね。マクロ禁止みたいなコーディング規約とかある?

575 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:39:19.87 ]
そういうのは規約というよりプロジェクトルールだろ
>>574はマグロ納品禁止な

576 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:42:17.73 ]
一行目がマジレスなのか二行目のギャグを言うためのフェイクなのか分からん

577 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:46:44.33 ]
lispやschemeを使った仕事ってあまりイメージがわかないんだけど
どういった用途に使われているのかな

578 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:47:55.58 ]
他人のソースにdefin-syntaxなんて出てくると
この野郎・・・!て思うわけよ


579 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:50:34.67 ]
つーか複数人でlisp使うプロジェクトなんて実在するのかよ
ゲリラ的に入れちゃいました、って案件ばっかりだぞ

580 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:52:13.24 ]
」なに・・・これ・・・」
「lispですよー知らないんですか哀れ」



581 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:54:26.95 ]
普段からストレスの連続なのに括弧のカタマリなんて出遭ったら発狂するだろ

582 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:55:14.01 ]
なんだ。やっぱプロジェクトで使われないから、そういうルールもないのか

ポール・グレアムはlispでサイト作ってたんでしょ
「 10人のLispハッカーが集められないようなら、 たぶんあなたの会社はソフトウェアを開発するのに適さない都市にいるんだ。」とか言って
結局ヤフーにM&Aされて書き換えられたんだっけ

583 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 23:59:16.46 ]
組み込むにしてもGCの無い軽い言語入れちゃうし、
あえてlisp入れてもそれほど面白くない

584 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:18:41.49 ]
マクロ禁止してまでLisp使う意味があるか疑問。それなら他の言語使えば良い。
JavaとかPythonとか、自分の足を撃ち抜きづらい言語が他にあるんだし。

具体的に、どんなマクロが可読性を下げると感じるのかには興味がある。
if*が気に喰わないとかならまあ理解できるけど、aifとかなら賛成できない。

あと、旧ITAとかMSIとか、プロジェクトで使っているとされる所は普通に存在するし、
そもそもFranzとかSBCLとかCCLの処理系開発者連中自体が複数人で開発してる。
興味があるならMSIのセミナーでも行ってみれば良いんじゃない。

585 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:21:33.42 ]
>>584
if*ってどんなマクロなの?

586 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:24:30.65 ]
一貫した構文がないこと自体、可読性が低いと思うけど、違うの

587 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:25:22.08 ]
>>585
こういうの。個人的には最高にキモいと思うけど、好みは人それぞれなので否定はしない。

cadr.g.hatena.ne.jp/g000001/20100529/1275126086

588 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 00:41:18.98 ]
まあ普通はPython使うけども、後学のために使ってみた
いずれにせよ書き捨て用だけど

589 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:06:01.08 ]
>>586
関数で抽象化するのと、マクロで抽象化するのと、どう違うかな?
どちらも特定の入力を受け、特定の出力を返すものだけど。
構文特有の話ではなくて、実は抽象化の設計自体が悪かったりしないかな?

もちろん、Cで{ }をBEGINとENDにするような、ああいう単なる置き換えについては、
批判が付いて回るのも当然だと思うけど。こういうの。

www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html

>>588
Paul Grahamのエッセイでも読んだ?
Lisperの可読性に対するスタンスとかは、そのGrahamのこれなんかが参考になると思う。

practical-scheme.net/trans/power-j.html

この著者、しばしばPythonを引き合いに出してdisってるように見えることもあるけど、
別に嫌ってないし、一定以上の評価を与えてるから、それは勘違いしないで。

590 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:16:02.46 ]
お前みたいな抽象化された脳みそでは同じに見えるんだろうけど
名前付きの関数と新しい構文では、普通は次元が違うと捉えるだろう

別にポール・グレアムはPythonをdisってないよ。lisp化してるとか言っちゃってるし
ただPythonにあまり詳しくないだけ



591 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 01:17:43.42 ]
>>587
ありがとう
うーん、こういう使い方があるのかと驚いた
使い込めばloopのようにしっくり来るようになるかも…?

>>588
Norvigの話をふと思い出した
((Pythonで) 書く (Lisp) インタプリタ)
www.aoky.net/articles/peter_norvig/lispy.htm

592 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 09:55:56.57 ]
>>589
arcを触った後にまた読むと読み方も変わるね。

真面目に(簡潔さの)プログラミング言語の比較をやるのはおもしろいのかもしれないなあ。
「(1)一ヶ月かかるプログラムで比較しろ」と言うけど、「(2)プログラミング言語間の相対
的な力を正確に比べるのはまず不可能だということになる。」とも言っているから(1)を
大きいシステムで試せという話に置き換えて、ちょっと小ぶりだけどLispの処理系作りで
試すのは良いことかもしれない。
So any language comparison where you have to meet a predefined spec is testing
slightly the wrong thing.
(だから、あらかじめ決められた仕様に合わせてコードを書くという形式の言語間の比較は、
少し的を外している。)
とあるけど、slightlyなわけでLispの処理系作りでいいんじゃねえと思った。いや、むしろ
比較しやすいシステムな気がする。
あと最初に仕様がまったくないシステムなんてないだろ。未知の問題があったとしても既存の
解法のベースがあってそれを応用して解くわけだし。天才数学者をさんざん殺してきたフェル
マーの定理クラスの問題を解くという話なのかな。言語で解ける射程距離って意識下/無意識
下で分かって解くことが始まるから仕様って頭の中にあるよね。

593 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 10:15:39.39 ]
>>591
Lispインタプリタを実装できないPythonは糞だな。

594 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 15:10:09.06 ]
>>593
誤読も甚だしい。

595 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:38:24.52 ]
PythonでR5RSを実装できんのかよ。

596 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 18:22:09.88 ]
できないと思う理由は?

597 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 18:42:17.58 ]
R5RS準拠Schemeすら実装できない汎用言語って存在し得ないだろw
Schemeよりよっぽど複雑なPython処理系をPythonで書いたりしてるのに。

598 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 19:15:47.95 ]
よっぽど複雑なPython処理系って具体的に何よ。

599 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:00:19.76 ]
>>598
その解釈はこちらの意図と違う。「よっぽど複雑な」が掛かるのはPython。

Pythonで実装してるPythonが知りたいなら、例えば名前がエロいPyPyがそう。
PyPyとかPychinkoとかPython使いエロ過ぎ。

Lisperももっとエロくなる必要があると思う。pgのeroとかじゃエロさが足りねーよ。

600 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:19.81 ]
今、man perlして気づいたんだけど、man perl*の充実ぶりってすごいなあ。
日本ローカルだけでman lisp*って充実しないか。manで引けるって便利だよなあ。
ドキュメントの置き方的に問題があるのかもしれないけど。
Overview
perl Perl overview (this section)
perlintro Perl introduction for beginners
perltoc Perl documentation table of contents
Tutorials
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltoot Perl OO tutorial, part 1
perltooc Perl OO tutorial, part 2
perlbot Perl OO tricks and examples



601 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:44.31 ]
600ぺりか

602 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:23:45.48 ]
おらの600ぺりかがあ・・・・

603 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:04:57.56 ]
>>599
ooopyもあるんだぜ。そりゃホルスタインは男の夢だが

604 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:05:57.51 ]
質問です。
'((A B C D) (E F G H) ...) -> '(A B C D E F G H ...)
の加工を行いたいのですが、関数をどのように組めばいいですか?

605 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:06:24.57 ]
>>604
appendか?

606 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:14:51.32 ]
>>604
Common LispかSchemeかは知らないが、appendをapplyすればおk。
ただし、関数の引数の最大数の制限に掛かるから、巨大なリストには他の方法を使うこと。

www.aiai.ed.ac.uk/~jeff/lisp/cl-pitfalls から引用すると、

(reduce #'append list-of-lists :from-end t)
(mapcan #'copy-list list-of-lists)

とか。Schemeならfold系の手続きを使えばreduceと同じことができる。

607 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:16:22.30 ]
っと。肝心なapplyの例載せ忘れたよ。

(apply #'append '((0 1 2) (3 4 5)))
;=> (0 1 2 3 4 5)

608 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:23:30.49 ]
とりあえず、LispでエロいっていうとS式を受ける引数によく使われるsexpは外せない。

609 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:30:15.72 ]
>>608
cofee-p のあれからいくと...


610 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:36:00.24 ]
mapappendていう関数があったような
なかったような




611 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:39:39.27 ]
あー、中でapplyしてんのか
失格だ
(define (mapappend func . args)
(if (memv '() args)
'()
(append (apply func (map car args))
(apply mapappend func (map cdr args)))))


612 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:54:23.19 ]
sexp と書くのはためらわれるので、自分で書くときは sxp と書いている。

613 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:58:17.69 ]
>>609 nil って答えられると困るじゃないか


614 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:25:28.38 ]
>>609
同性どうしならヤダな。

615 名前:デフォルトの名無しさん [2011/12/26(月) 00:45:26.84 ]
PyPi
PyPy
Pychinko
Pypants

616 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:57:03.26 ]
おいおい。パンツまであるとかレベルたけーな。

617 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 02:38:10.37 ]
pypanもあるぞ

618 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 03:04:44.40 ]
行列計算ぐらい統一してほしい
(list 'matrix 数値)
とか
(vector (vector 数値))
とか
(vector 数値)
とか

というか計算が一番速いのはどれ?

619 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 04:27:35.55 ]
racketに
(define (apply-values proc args-expr)
(call-with-values (lambda () args-expr) proc))
なんてのあるけど、どうせならsrfiかなんかに登録されてほしい。

620 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 10:49:07.18 ]
>>618
Common LispやSchemeで行列演算とかしたことないけど、
本気で性能を気にするなら、disassembleして生成されるインストラクションを見た方が良い。

リストはインデックスアクセスの計算量的に不利だから、あんま使われんだろうとは思う。
ベクタのベクタと単一のベクタは生成時のコスト以外あんま変わらん気がするけど、
処理系によってベクタの実装に差があると思うから、その処理系で実際試してみないと何とも。
処理系のコード読んでみるのも良いかもしれない。ベクタへのアクセサとかの。



621 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:35:21.51 ]
CommonLispなら組み込みでarrayがあるのにわざわざリストやベクタのベクタ使う意味は?
arrayで型宣言して(speed 3)(safety 0)すればそれなりのコードは出るよ。
Schemeはsrfi-25があるけど、速度はわからん。


622 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:40:12.33 ]
標準で行列演算ならarrayを使うほうが適切だわな。

623 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:57:14.78 ]
キーワードじゃなくて素のシンボル使ってるから多分Schemeっしょ。
Racketはサポートしてるけど、リファレンス実装ぽいなー。
Gaucheはgauche.arrayでSRFI-25とAPIは揃えつつ独自の実装してるっぽいね。

624 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:06:03.87 ]
ところでgauche使いってここに何人いるの?

625 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:07:07.75 ]
gauche以外に何があるんだよ…

626 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:28:08.07 ]
凄い脳味噌

627 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 19:35:05.74 ]
>>605-
ありがとうございます。
助かりました。

628 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:12:24.95 ]
common lisp(CCL)とgaucheでcdかdが見つかったら続く非空白文字につなげたいのですが
(直後に改行が来ていたら次の行の非空白文字につなぎます)
どういう処理ですればいいのでしょうか。dは一つだけ来て二つ以上は続きません。

a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3

a1a2 cdb1b2b3 ; cd b -> cdb
c1c2c3 d1d23 ; 行末のd -> 次の行へ
de1e2e3 f1f2f3 ; ->行頭にdを追加

ファイルから一文字ずつ読み込んでcdとdが来たら非空白文字まで出力を控え、
非空白が来たときにそれとともに出力という原始的な方法を考えたのですが
もっと効率のよい手法はあるでしょうか

629 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:25:38.35 ]
www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
Schme to readable C++
に型推論を導入
まだ未完成だけど時間切れになってしまったのでやもえず公開

630 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:06:07.79 ]
>>628
> もっと効率のよい手法はあるでしょうか

具体的に何の効率なの?
実効速度の事なら、よっぽどまずいコーディングしない限り、
速くなったり遅くなったりする要素は殆どないけれども。



631 名前:628 mailto:sage [2011/12/26(月) 23:22:59.43 ]
>>630
そうなのですか
わかりました

632 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2011/12/26(月) 23:28:53.00 ]
Gauche ならその手のスクリプトでありがちなテキスト処理用の機能が多数用意されてるからよほど速度とかメモリとかにこだわるのでなければ正規表現でマッチさせて置換えでいいんじゃないかな。

(display
(regexp-replace-all
#/(c?d)([ \n])/
"a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3"
(^[m]#`",(m 2),(m 1)")))

633 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:40:59.31 ]
cl-lexでもいけそうだけど、本人案でいいでしょ。

634 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:56:04.87 ]
またお願いします。
define-syntaxを使って
(map proc list) -> (proc (x list))
のように変換したいです。
簡単に言えば、リストにmapを内在させて見てくれを良くしようと思ったのです。
e.g.)
(define plusone (lambda (x) (+ 1 x)))
;;;通常なら
(map plusone '(1 2 3)) ;;;=>'(2 3 4)
;;;やりたい
(plusone (まくろ '(1 2 3))) ;;;=>'(1 2 3)

635 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:05:34.41 ]
最後の'(1 2 3)は誤記です

636 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:08:32.94 ]
call/ccでも使えば

637 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:28:53.24 ]
>>636
使いましたがリスト先頭のみ処理されました。

638 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:33:43.11 ]
>>632-633
ありがとうございます。

639 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:53:13.56 ]
≡≡≡≡ 癶( 癶;:゚;益;゚;)癶 カサカサカサ

640 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 01:55:16.48 ]
AmazonのプログラミングGauche売れとるな



641 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:28:00.78 ]
プログラミングgaucheの中に出てくるjames clark's notationについて
どこかに詳しい説明はありませんか
search.cpan.org/~rbs/XML-Filter-Essex-0.01/lib/XML/Essex/Model.pm
を見るとどうもjames clark's notationは別物のように思えるのですが

642 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:45:55.73 ]
その本は読んでないが、
www.jclark.com/xml/xmlns.htm
では足りないのかい?

643 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:49:55.17 ]
俺の記憶にあるのは、
ttp://jp.rubyist.net/magazine/?0012-qwikWeb#l14
これだけだな。

確か高林氏が最初に「わびさび方式」を紹介した時に、氏のコードが生成してるスタイルについて
そのように呼んでた記憶があるんだが、氏の勘違いじゃなかろうかと俺は思っている。

字下げ付けないでべたっと生成してるぶんにはさほどでもないが、字下げを付けようとしたら
割と変態っぽくなった記憶がある(まぁPPなんて複雑になりたがるもんだけど)。

644 名前:641 mailto:sage [2011/12/27(火) 22:48:00.53 ]
なるほどわかりました

645 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:16:15.10 ]
「プログラミング不器用な」 が売れてるのか。

646 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 14:29:47.83 ]
www.cl.cam.ac.uk/teaching/1011/ConceptsPL/
これのlispのスライドにreflectionとあるのですが
>Fully reflective languages are still just research prototypes
>(e.g. Maude), but limited forms of reflection appear in
>several languages (e.g. LISP, Prolog, Python)
これはどういうことなのでしょうか?

647 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:06:33.10 ]
なんぞ

[腐lisp]腐女子のためのlisp入門 #0 - Oh! Can Not Diary
piro.hatenablog.com/entry/2011/12/28/232146

648 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:20:58.48 ]
あのpiro氏とは無関係か。
腐はともかくとして、今時elispってのはこれまた微妙な。

649 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 14:50:37.28 ]
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00

おもしろいことやっているじゃん。誰か今から参加しろよ。

650 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:06:15.26 ]
>>649
社会人でも予選は参加可能らしいしやってみれば?

時間制限あるしsbclとか使えば多少有利かもね



651 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:33:07.12 ]
つまらんわ

652 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:37:36.79 ]
ほうしゃのうを除去するプログラム作ってくれ

「ほうしゃのうを除去するプログラム作ってくれ」

「を除去するプログラム作ってくれ」

653 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:42:28.01 ]
R7RSのドラフト読んでみたけど、R6RSは本気で黒歴史にする方向みたいだな。

654 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:07:30.67 ]
>>653
>R6RSは本気で黒歴史にする方向
詳しく聞きたい

655 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:35:22.18 ]
互換性切って捨てられるとかpython3みたいだな。

656 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:59:16.85 ]
rubyよりまし

657 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 18:50:38.47 ]
Perl6は赦された

658 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:54:15.03 ]
R6RSとかいらないし

659 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:08:33.13 ]
Windows2000と7に挟まれたVista扱いですか…

660 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:16:29.67 ]
7も正直微妙なんだけど8で大コケの予感
UIいじるのは完全に死亡フラグ



661 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:18:26.33 ]
単なるマーケティングの問題と一緒にすんな

662 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:43:46.81 ]
racketに慣れきってしまったので6を黒歴史にされると困る

663 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:55:14.14 ]
RacketはもうArcよろしく我が道を往くことになってるから安心しろ。
あれはLispではあるけど、もうSchemeじゃない。RnRSをサポートしてても。

664 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:10:07.16 ]
iphoneでもluaはちゃんと動く
lua上で動くschemeがあるので
iphoneでも無料でscheme動かすことできる

665 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:44:02.99 ]
de?

666 名前:デフォルトの名無しさん [2011/12/31(土) 13:06:19.87 ]
>>663
だとすると、結局のところschemeのエッセンスって何なの?

667 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:21:55.67 ]
>>666
実装して楽しいことじゃね?

668 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:48:45.98 ]
誰かアンドロイドタブレットで動くgaucheインタープリタ作って

669 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 16:49:22.06 ]
>>666
純粋な計算機科学の話ではなくて、どちらかと言えば政治的な話。

"a dialect of Lisp and a descendant of Scheme"のRacketの処理系であって、
今後もRnRS Schemeをサポートするけど、それは彼らにとって一番の目的じゃない。

670 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:39:05.56 ]
gaucheで
テキストファイルの内容をテキストとしてそのまま出力するcgiと
ダウンロードページのように、アクセスすると指定したtar.gzをダウンロードさせるcgiを作りたいのですが
どういう風にすればいいのでしょうか



671 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:51:56.15 ]
お前 Gauche 以前の問題だろ

672 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:28:54.18 ]
gaucheで
の部分を何に変えても同じことだな

673 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:55:16.29 ]
テキストファイルやtar.gzを読んで適切なhttpヘッダーつけて標準出力に
書き出せばいい。


674 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 00:06:12.05 ]
>>671-673
ありがとうございました


675 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 14:58:10.32 ]
iphoneのgambit cが便利。しかしソースの保存先が不明。どこから見れるんだろ

676 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 15:47:38.47 ]
>>675
アプリつくれるんだっけ?

677 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 16:03:17.95 ]
>>670
高校生の時を思い出したわ。
今の時代はこんなの中学生か小学生かな。

678 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 17:05:47.37 ]
>>676
>>675
>アプリつくれるんだっけ?
単にどこでもスキームコードが書けるだけみたい。

679 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:00:21.15 ]
>>677

680 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:11:07.42 ]
Gambitの継続をスレッドで実装する方法ってどこかに文献ないのでしょうか




681 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:23:00.76 ]
lists.racket-lang.org/users/archive/2008-June/025051.html
結局、どっちの挙動が正しい挙動なの?

682 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:27:02.33 ]
トップレベルの解釈って処理系がそれぞれ適当に決めてるんじゃないの

683 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:50:27.30 ]
処理系作ってみればわかるが
どっちもどっち

684 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:17:36.26 ]
axisofeval.blogspot.com/2011/07/some-nice-paperz.html
Some nice paperz on delimited continuations and first-class macros

685 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 19:45:58.29 ]
schelogでちょっと複雑なプログラム組むと
無限ループから帰ってこなくなるのは
自分の使い方が悪いだけなんだろうか

686 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 21:34:21.86 ]
>>685
github

687 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:30:34.59 ]
srfi-*とかクソわかりづらいんだけど慣れるもん?

688 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:44:01.52 ]
いや、メモを参照すべきだと思うぞ。

689 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:48:31.33 ]
RFCなんかに比べりゃかわいいもんよ

690 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 01:21:07.60 ]
>>688
なんのメモを参照しているの?



691 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 06:07:02.56 ]
srfi とslibの関係がよくわからない

692 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 07:40:07.85 ]
srfiは仕様案を出してみんなで議論して形にする。一応参考実装があるけど、
「仕様」が本体なので、仕様だけ見て独自実装している処理系も多い。
slibはSCMの作者が中心となってメンテしているライブラリの集合。仕様に
こだわるよりも実装が主体。
両者は基本的に無関係だけど、SCMの作者がslibの一部の仕様をsrfiとして
提出して承認されているものはある。

693 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 06:38:20.67 ]
racketはシェルとの融合性が悪すぎる
パイプとportつなげたいだけなのに出来ないとか

694 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:24:29.54 ]
(call-with-output-string
(lambda (out)
(call-with-input-string "aaaaaa"
(lambda (in)
(exec-shell-pipe "cat -" in out)
))))
みたいなことしたいのだけどRacketはできないみたい
Gaucheならできる?



695 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:29:27.07 ]
みたいなことはどれでも出来るんじゃね

696 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:47:53.08 ]
shellの標準入力とパイプ入力で扱いが違うらしく
動かないshell コマンドがある

697 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 16:32:57.47 ]
common lispとscheme(gauche)のソースを見やすくする
javascriptでできたシンタックス・ハイライトはありますか?
webでそれらのソースを見せたいので

698 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 17:52:28.72 ]
>>697
see demo at pygments.org/

699 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 08:55:25.13 ]
>>696
なにいってんだ?

700 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 15:22:37.44 ]
>>699
Racketで694に相当するのが(process "cat")だけど
実行してみると何処がおかしいのかわかると思うよ



701 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 00:48:18.63 ]
何言ってんだか全くわからん。

$ cat foo.ss
(define-values (p stdout stdin stderr)
(subprocess #f #f #f "/bin/cat"))
(display "aaaaaa\n" stdin)
(close-output-port stdin)
(display (read-line stdout))
(display "\n")
$ racket -f foo.ss
aaaaaa



702 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 03:34:47.61 ]
>>701
ls, top, cat hoge.log | tail -n 99 | grep abとかは、どうやるの?

703 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 10:48:07.24 ]
(subprocess #f #f #f "/bin/sh" "-c" "ls | grep ab")でいいんじゃない?

704 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 20:46:41.56 ]
>>698
すみません、それはpythonでファイルを新たに生成するものではないでしょうか

705 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 07:08:13.54 ]
www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/

706 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 08:15:50.26 ]
>>704
単独で生成もできるし、jekyllみたいなものから静的なhtml作成
もできるよ。common lisp,scheme,clojure含めて対応言語が多いので、
重宝する。705にも紹介されてるよ。

707 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 09:23:26.10 ]
環境を変更せず、お手軽にJavaScriptでやりたいんじゃないのかな。
自分もブログサービスで簡単に利用できるのを探したりした。

google-code-prettify
code.google.com/p/google-code-prettify/

なんかは、Lisp界隈で何度か使われてるのを見たことがある。
ただ、厳密に構文解析してるわけじゃないみたいなので、
何かのタイミングでハイライトが崩れる場合もあったと記憶してる。

708 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 12:53:31.40 ]
>>705-707
ありがとうございます。
>>707のおっしゃるとおり手軽に行いたかったのです
あげてもらったものを試してみます

709 名前:デフォルトの名無しさん [2012/01/16(月) 16:31:35.37 ]
ttp://d.hatena.ne.jp/higepon/20120116/1326674950

710 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:13:42.03 ]
ステマスレと間違えたんですね



711 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 19:28:17.79 ]
d.hatena.ne.jp/r-west/20090417/1239972722
大変わかりやすいエントリーなのですが、読んで疑問を持ちました
1.lispやschemeとycombinatorはどういうところで結びつくのでしょうか
2.ところでpaul grahamが設立したy combinatorはy combinatorの意味と何らかの関係があるのですか


712 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 01:39:33.32 ]
Ycombinator懐かしいな

(define (Y F)
((lambda (s) (F (lambda x (apply (s s) x))))
(lambda (s) (F (lambda x (apply (s s) x))))))

(define length
(Y (lambda (f)
(lambda (ls)
(if (null? ls) 0 (+ 1 (f (cdr ls))))))))


713 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 10:04:35.84 ]
>>711
2についてはpaulが答えてる。 ycombinator.com/faq.html

Why did you choose the name "Y Combinator?"

The Y combinator is one of the coolest ideas in computer science. It's
also a metaphor for what we do. It's a program that runs programs;
we're a company that helps start companies.


714 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 17:16:22.14 ]
>>712-713
ありがとうございます。わかってすっきりしました。

715 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 10:37:22.18 ]
Lispには歴史的価値しかない
Lispからはもう新しいものは生まれない

716 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 12:24:53.66 ]
うん、過去ログを読めない人にとってはそうだな

717 名前:デフォルトの名無しさん [2012/01/18(水) 12:40:32.37 ]
2ch監視し続けないと目に触れないようなもん
大したものじゃないな

718 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:36:39.08 ]
>>715
のお勧め言語は?

719 名前:デフォルトの名無しさん [2012/01/19(木) 01:07:41.25 ]
別に新しいの生み出さないでも、
俺一人が気分良く使えればそれでいいし。

720 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 02:51:38.27 ]
schemeで
文字列 "aabb" から同じ名前の変数に何か割り当てたい
(define aabb "some")
string->symbolで変換しても無理だったのだけど何か方法ないのでしょうか



721 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 06:39:10.99 ]
適当に加工してevalかマクロ

722 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:01:00.29 ]
関数に値を渡す時
vectorとlistは参照渡し
それ以外は値渡し

なんかすっきりしない

723 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:44:03.25 ]
Schemeに参照渡しなんて無い

724 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:58:50.56 ]
(lambda (x) (set! x))は、xが関数の中にあるのか外にあるのか、分からない
(lambda _ (let ((x (car _))) (set! x)))は分かる
パラメータを宣言するのをやめてローカル変数を宣言すればいい

725 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 13:11:18.05 ]
誰か>>724を翻訳してくれ

726 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 13:12:42.87 ]
perl大好き

727 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 13:39:15.59 ]
RnRS にも載っているように let は lambda に変換されるマクロ
ローカル変数を作ってるのは実は lambda の方

728 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 14:18:10.31 ]
(my-let ((x 1)) x)
から
((lambda (x) x) 1)
に変換するこんなマクロ一度は作るよね

729 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 14:23:54.29 ]
参照渡しなんて無いほうがいいと思うなら
引数を評価しないで渡すマクロも無いほうがいいと思うだろうな

730 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 14:56:52.91 ]
参照渡しと参照の値渡しを混同してるやつが居るな



731 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 14:58:08.78 ]
Lispは他の言語と比べたら
全くと言っていいほど役に立ってないのに
なんでLisperはあんなに威張りくさっていて態度がでかいんだろう

732 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 15:03:26.05 ]
↑こんな風に

733 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 15:03:33.38 ]
下から目線キター

734 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 15:05:07.77 ]
たしかにバカを相手に威張ってもなんの得にもならないし
ろくなことはない。愚かな行為ではあるな

735 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 15:11:48.97 ]
>>730
その理論でマクロは説明できないの?
quoteの値渡しとか

736 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:10:34.30 ]
値渡しを理解してない初心者がなぜか動かないと疑問に思う例
(define (push stack objct) (set! stack (cons objct stack)))
(define (pop stack) (prog1 (car stack) (set! stack (cdr stack))))

やりたいことはこう
(define (make-stack) (list '()))
(define (push stack objct) (set-car! stack (cons objct (car stack))))
(define (pop stack) (prog1 (caar stack) (set-car! stack (cdar stack))))


737 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:12:42.80 ]
自分の役にたって自分だけ金が儲かれば、
世の中の役になんてたたんでええわ。

738 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:58:32.60 ]
>>737
おまえもぉ〜いつかは〜世の中の〜♪、傘になれよと教えてくれた〜♪

739 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:56:03.80 ]
>>736
thisやselfを渡すOOを理解していない初心者はそういう書き方はしない
stackを自由変数にするだろう

740 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:56:51.52 ]
perlのshiftやjavascriptのargumentsのように外部イテレータで書くのが正解っぽいな
引数で混乱するなら戻り値を使え
内部イテレータはオワコン



741 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:44:30.82 ]
最近のコンテンツ産業はプログラミング言語の機能も扱うのか

742 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:53:55.20 ]
LISPを勉強してよかったことは、片方向リストに強くなった

743 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:56:46.62 ]
コンテナ渡し
コンテンツ渡し
コンテナのコンテンツ渡し

744 名前:デフォルトの名無しさん [2012/01/21(土) 23:28:14.88 ]
SICP taught in Python 3
www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html

SICPがPythonで学べるようになって
Schemeの唯一の存在価値がなくなってしまった


745 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:39:55.85 ]
Python3って異様に普及していないよなあ。

746 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 00:15:40.26 ]
Gauche の HEAD が Windows でもスレッドを使えるようになったお。

747 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 03:06:55.51 ]
schemeでpaipに相当する本ってないの?

748 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 12:50:39.85 ]
vector-set! があってlist-set!がないのは何故だろう

749 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:13:33.04 ]
R7RSにはあるぞ list-set!

750 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:17:06.57 ]
R7RSは大丈夫なの
R6RSみたくならない?



751 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:39:31.01 ]
大丈夫問題ない

752 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:46:33.01 ]
R6RSとは何だったのか

753 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:14:59.27 ]
一部の暴走

754 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:17:03.43 ]
実用重視とか言ってなかったっけ?そんなにダメなん?

755 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:33:41.72 ]
(set! (cadr '(1 2 3 4)) 5)

756 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:35:37.50 ]
Vistaみたいなもんとか

757 名前:ハンバーグ餃子 ◆8X2XSCHEME mailto:sage [2012/01/22(日) 15:59:42.38 ]
>>748
vector-set! を無いところから作るのは無理だけど、
list-set! を作るのは難しくないのでそれほど困ることは無いはず。
R5RS の時点では言語コアに入れるほどのものじゃないと思われたんじゃないかな。

R6RS ではペアの破壊は避けて欲しい雰囲気になってる。
set-car! や set-cdr! でさえライブラリの僻地に追い払ったくらいだから、
更に list-set! を追加しようとは思わないだろ。

758 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:09:40.24 ]
O(1)で済む所が全てO(N)になってしまうからな

759 名前:ハンバーグ餃子 ◆8X2XSCHEME mailto:sage [2012/01/22(日) 16:22:57.42 ]
srfi-101 があるでよ。
と思ったけど、これはまだ Draft の段階だな。

760 名前:デフォルトの名無しさん [2012/01/22(日) 16:23:16.48 ]
PythonでSICPが教えられるようになった
今となってはSchemeでSICPやるのは
時代遅れの教える側の趣味の押しつけでしかない
選択授業でやるならまだしも
必修でやるのは職権乱用だよな



761 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:15:58.88 ]
>>760 クリエイティブコモンズで公開されてることだし、てめぇで翻訳してからでかい口たたけよカスが。
翻訳終わるまで2ちゃんねるには書き込まなくていいからね。さもなくば死ねよ。

762 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:17:48.99 ]
WD先生自重してください

763 名前:デフォルトの名無しさん [2012/01/22(日) 19:18:16.48 ]
SICPは日本語訳変だし、
どこも英語でやっているでしょ。

764 名前:デフォルトの名無しさん [2012/01/22(日) 21:08:22.16 ]
Lisper教授は野球でいえば、
ピッチャーの球種がストレートとカーブしかなかった時代の強打者。
球種が増えた現代の野球に対応出来ないでいるのに居座っていて、
後進にも時代遅れの打ち方を強要している。
もういい加減引退して野球博物館に展示されるべき。


765 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:22:09.90 ]
何か最近やけに煽りに来る人多いけど、誰か何かしたん?

766 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:23:58.73 ]
脳を患った人がいるだけでわ

767 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:27:08.01 ]
強打者って褒めてるし

768 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:28:58.36 ]
モノスゴイ執念で一人でがんばってる仮説

769 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:33:45.70 ]
みんなが相手してくれるから

770 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 08:12:20.18 ]
Pythonで拡張できるエディタが普及するのはまだなの?
秀丸はLinuxに移植されないの?
>>760
「中学・高校で古典・漢文は時代遅れの教える側の趣味の押しつけでしかない」と
言っているようなもんだよなあ。
日本人が学校ネタで世代間を越えて語れるようにSchemeでSICPやるのはそういう
面でも意味がある気がするけどなあ。あとLispは文献の資産もたくさんあんだろ。
SchemeでSICPやめたのは失敗だったとあとで気づく気がする。
というか、SICPぐらい高校生のうちに読んでおけよと思うんだが。



771 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 08:55:38.97 ]
Pythonって規格もないし、後方互換を切り捨てたばかりだろ。
拡張性もschemeより低いし、数年毎に全面改訂必須になりそう。
schemeなら新技術が出てもマクロを足すだけで済む。

772 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 09:02:22.95 ]
最後の一文だけは妄想の産物だな

773 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 09:03:18.87 ]
ごめん
最後の一文てのは>>770のことな

774 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 09:07:01.90 ]
>>771
> Pythonって規格もないし、後方互換を切り捨てたばかりだろ。
> 拡張性もschemeより低いし、数年毎に全面改訂必須になりそう。
> schemeなら新技術が出てもマクロを足すだけで済む。

同意。

何よりもプログラミング言語を構成している基本概念(の中で静的なデータ型を除いて)を
Schemeほど学習者にとって認識しやすくしている言語は他にほとんどないんだよね。
Scheme以外のほとんどの言語は実用を意識し過ぎて最初からシュガーを纏った形であったり
概念の要素ごとでなく複合的な形でしか提供されていない場合が多い。

しかも言語の構文まで拡張する(それも普通の意味でのマクロよりももっと系統的な方法で)のを
可能にしているのはScheme以外には存在しない。

実用プログラムを書くだけならば他の言語でも良い(あるいは他の言語の方が便利)かも知れないが、
プログラミング言語とは何かを一度きちんと理解して、表面的には色々と異なる様々な言語に出くわしても
自在に応用が利くようなレベルまで深く修得するには、Schemeを学んでおくのは時間の無駄ではない。

プログラミング言語やプログラミングに関する優れた教科書でSchemeを採用しているのが何冊もあるのは
何故なのかか?という事をもっと真剣に考えるべきだし、それは偶然ではないんだよね。

775 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 09:11:44.65 ]
SchemeでなければCommon Lispだな。
SICPのスコープには入ってないが、LispのマクロのパワーはPythonには全く無いからな。

776 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 10:26:18.36 ]
R6RSのことも思いだしてやってください。> 規格の堅牢さ

777 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:40:55.95 ]
>静的なデータ型を除いて
致命的に駄目じゃん

778 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:45:09.61 ]
他の言語やるならSchemeなんてやらない方がいいだろ
うちの教授なんてLisp脳が酷すぎて他の言語が理解できなくなっているし

779 名前:デフォルトの名無しさん [2012/01/23(月) 12:49:32.86 ]
>「中学・高校で古典・漢文は時代遅れの教える側の趣味の押しつけでしかない」と
>言っているようなもんだよなあ。

古典・漢文はいらんだろ。少なくても時間を減らすべき。

780 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:52:41.60 ]
その辺は高校では選択だったから、さわり程度しかやらなかったよ。



781 名前:デフォルトの名無しさん [2012/01/23(月) 12:52:56.67 ]
>後方互換を切り捨てたばかりだろ。
後方互換を切り捨てたのは今までで一度だけだし、もうだいぶ前のことだ。
規格が分裂しているSchemeよりかなりましだろ。

782 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:01:42.34 ]
SICPはCSの教科書のふりをした
Schemeを押しつけるための教科書だろ

783 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:29:14.37 ]
>>782
Schemeは静的型付けを押しつけない。
また、文字列処理を押しつけないためにsymbolとconsを使う。
しかしquoteの分かりにくさは文字列を普通に使うよりも酷くなった。

784 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:31:44.06 ]
Schemeに代わるものがあれば使えばいいと思うよ。

構文にあれこれ気を使う必要がなく、ラムダ式や高階関数を使うことのハードルが低く、
関数型パラダイムだけでコードを書くこともできるが、データ構造の破壊的更新も
やろうと思えばできる、という言語が、あればね。

>>782 は具体的にそういう言語があるなら示してみろ。できないなら黙れ。二度と書き込むな。

785 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:35:00.31 ]
Pythonの話が出てるので普通言語ユーザな視点からの質問。

Schemeとかって手続きがデフォルトでポリモーフィックじゃない(オブジェクト指向じゃないから当たり前だが)のが
使いにくいと思ってるんだけど、Schemeを使ってる人達はそんなことは思ってないの?

(vector-ref vec i)より
vec.ref(i)の方が良いと思いません?vecもダブらないし。

786 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:35:06.47 ]
サスマン先生本人がどっかで言ってたけど、SICPの意図は、
抵抗やコンデンサ、トランジスタを集めてきてハンダ付けして実験することで
電子回路を理解するのと同じように、計算のしくみを部品から組み立てて
理解できるようにするものだったそうな。だから敢えて機能が少なく簡単に仕様が
説明できるSchemeを使ったと。最初の講義の30分で言語の説明を終えられる、
だったかな?
けれど今の工学をやるなら、バラバラのパーツを集めてくるだけじゃなくて、
ブラックボックスになっているチップやモジュールを使わざるを得ない。それと
同様に、言語でもありもののライブラリを集めて使うことが重要になってきたと。


787 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:41:59.43 ]
>>785
確かにそれひとつのみを考えたらそうなんだけど、そうやって、素敵機能を
ひとつ追加するごとに新しい構文を追加していったら、結果がどうなるかというと
だいたい見えている。

たいていの言語は、あれもこれも追加するなんてことはしない、という方針によって
カオスになるのを避けているわけだけど、Lisp 一族は、構文を追加しない、という
方針にしたということ。

>>786
これかな?
ttp://d.hatena.ne.jp/leque/20090326/p1

788 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:52:14.00 ]
最初に少し説明に長くかかっても、
言語なんてこの先ずっと使うものだから(Scheme以外は)
ちゃんとしたの選んだ方がいいよな。

789 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:53:17.07 ]
>>785
Lisp語族を使う人の中でもそういう記法を好む人もいるよ。度々見掛けるネタ。

ただ、vec.ref(i)って、(vector-ref vec i)の構文糖以上のものではないから、
大抵はリーダーマクロとか使って、リーダー部分をいじって変換するだけ。
言語仕様に入れるほどのものじゃないと思う。ライブラリや処理系のレイヤ。

790 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:54:57.31 ]
最小限ってのもあまりよくないような
みんなが好き勝手に作ってしまって
言語仕様ですらひとつにまとまらない



791 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:05:20.17 ]
オブジェクト指向のライブラリもけっこうあって、好きな文法が選べる。
デフォルトの文法に従うのではなく、問題領域を簡潔に表記できる言語を作ってから書く。
最小限の部品で言語を作るための言語。文法が多いと専用の言語を作る時に邪魔になる。
但し大量の俺々schemeができて互換性がなくなる問題点がある。
R7RSが解決する予定。

792 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:05:30.04 ]
>>785
横に長くなるのが嫌なら、手続き的に書くだけで充分に縦長になるので
その上に更にOOで幅を狭くしたいとは思わない

793 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:07:12.71 ]
>>788 >>790 そう思うあなたのために Common Lisp があるのに、何が不満だ?

794 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:10:53.58 ]
>>793
SICPの話しているんかと思ったんだけど
SICPにCommon Lisp関係ないしょ

795 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:13:03.24 ]
アホはひとつしか言語が使えないのか。
分野によって使用言語を使い分けるのが常識だと思うけど。
言語の文法は優劣でなくて選択で、ある点で有利な文法は他の点では劣ってるのが普通。
言語の作り方を見せるという点でscheme以上の言語はいまのところない。

796 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:16:12.50 ]
うちの教授はLispしか使えんぞ

797 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:22:53.73 ]
SICPだから言語の作り方でなくて、計算の基礎理論か。
それにSICPはschemeの教科書ではないよ。
あれはCSの教科書。schemeの理由は上にあるように、CSを教える用途に優れてたから使っただけ。

798 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:36:25.38 ]
今ならOcamlとかHaskell使った方がいいよね

799 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:38:47.94 ]
S式ならね

800 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:49:33.45 ]
>>787
Lispは文法の純潔さを選んでいるわけですね。

>>789
あくまで個人的な印象だけど、メッセージ送信の文法は構文糖以上だと思うな。
名前空間も絡んで来るし。

>>791
確かに選べるけど、それらが役に立つのは自分で新しくオブジェクトを書くときか
その文法が使われているライブラリを利用するときだけで、
既存のデータ型を好きな文法でシームレスに扱える訳じゃないから
あまり嬉しくなかったりする。

>>792
長さは置いておいても、意味が同じ手続きをプログラマ側で使い分けないといけないのが
面倒に感じるんだよね。



801 名前:785 mailto:sage [2012/01/23(月) 15:03:18.43 ]
>>789
ちょい追加。個人的な印象ってのはよくない。

vec.refからvector-refに展開するにはvecの型と対応する手続きを知ってないといけないから、
静的にはできないし構文糖とは言えないんじゃないかな。

802 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:46:58.18 ]
pythonのnumpyに相当するものは欲しい
行列計算や数値計算の枠組みを共通化してほしい

803 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:49:49.77 ]
ついでに
>>618


804 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:08:39.28 ]
共通化よりも変換だ
unicodeとiconvのどっちかを捨てろと言われたらunicodeを捨てる

805 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:20:16.28 ]
その二つを比べてどうする

806 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:33:45.07 ]
>>800
端折り過ぎたというか、言葉が足りなくて色々考えさせたみたいで申し訳ない。

メソッドのディスパッチとか、そういった途中経過も勿論含めての話。
オブジェクトとメソッドへの引数を伴った、単なる手続きの呼び出しと、
最終的に等価になるのは同意してもらえると思うんだけど、どうだろうか。

それで納得してもらえたら、あとは>>789の最後の部分に続く。

807 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:38:29.18 ]
>>802
ベクトル・行列演算ならBLAS
連立一次方程式ならLAPACK

とFotran由来の共通規格があるじゃないか

808 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:24:22.02 ]
>>779
> 古典・漢文はいらんだろ。少なくても時間を減らすべき。
減らさずに土曜日授業もやればいいんだよ。

生物学は物理学との選択で学べず、地学は選択すらできなかった。
大学受験予備校化や実用主義って学問をやる上で邪魔な存在だよ。

実用主義に走りたいなら義務教育が終わったらやる気や才能ある奴が働きやすいようにしたらいい。
就職予備校化している大学は専門学校って名前を変えればいいんだよ。
>>786
なんか作ろうと思ってマイコン関連のスレにずっと常駐しているけど、
ブラックボックスになっているチップやモジュールは好まれず、仕様
公開とか、色々とホワイトボックスになっていないと好まれないじゃん。
オープンなAruduinoがあるけど、どういう位置づけなの?

あと具体的にブラックボックスのモジュールってどういうの?
> 言語でもありもののライブラリを集めて使うことが重要になってきたと。
これってSchemeの得意分野じゃないの。
>>788
そりゃあ、言語選びはもの凄く大事でしょう。
習字の二度書き禁止みたいに無駄に何個も覚えるもんではないからね。

シェルスクリプトbashを覚えちゃったけど、kshを覚えたかったなあ。

809 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:30:53.37 ]
MSが作ったから馬鹿にしてたけど
PowerShellが以外とよかった

810 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:12:30.80 ]
>>808
ブラックボックスって言い方が悪かったか。仕様は公開されてるけど、使う時に
チップの中の電位分布の変化を意識したりしないでしょ。ディスクリートで
組む時のような意味では。インタフェースと定格と限界さえ理解してれば、
中身はブラックボックスとして扱っても良いってこと。

SICPの文脈だと、具体的には、MITでは電気電子情報の学生は初年度に
ロボットを作らせることになったのね。そのくらいの複雑度になると、
全てを把握するってのは無理で、出来合いのユニットのインタフェースを
理解して目的に合わせて使いこなしてゆくってことが重要になってくるって話。

> これってSchemeの得意分野じゃないの。

PythonのライブラリとSchemeのライブラリの量を比べてみれ。
Schemeが教育上の効率(言語の説明が省ける)で選ばれたのと同様、
Pythonが教育上の効率(使えるライブラリが既にたくさんある)で選ばれるわけさ。

この現実に不満があるなら、Schemeのライブラリを同じくらい充実させるしかないねえ。



811 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:30:04.88 ]
SICPをSchemeで教えるかPythonで教えるかって話をしてるところに、
SICPを教えるかライブラリ利用云々を教えるかっていう、関係ありそうで全然別の話を持ち込んでる人が居ますね

812 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:36:19.80 ]
何ヶ月も学習するわけだから
最初にやるSchemeとPythonの言語の大きさの差なんて誤差のうち
むしろ一般人には規模が大きくてもPythonの方が楽に学べそうだ

813 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:43:40.59 ]
全員が高校卒業までに体系的にSchemeを学ぶ必要はないけど、独学でやり込んで来てくれと
いう話じゃないの。
Pythonを一から教えるなら一年かかると思うし、半年で教えるなら色々と前提条件がつくんじゃないの。

MITのロボットの話だって事前に設計図を読めて書けて安価なマイコン・コンデンサ・モジュールを
組んだりとか、してきてねってことじゃないの。やっていないと物凄い苦労するよって。
人権無視で長時間拘束して大学で4年間教えていいなら教えられるけど、人権ありで4年間だと何も
教えられないんじゃないの。
>>812
なんで楽なのにPython3って普及しないの?
Python3.1になったらみんな使い始めるって計画じゃなかった?
今、 Stable release 3.2.2 / September 4, 2011; 4 months ago (2011-09-04)だよ

Pythonに思い入れがなく、ただ覚えやすいという宣伝文句にひっかかって使い出したに過ぎ
ないんじゃないのか。教祖のGuidoが3使えって言っているんだら3使えよ。
教祖に背くと地獄に行くぞ。

814 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:11:51.34 ]
まだやってんのか

815 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:13:15.55 ]
>811
>787 あたりみるとSICP書いて教えてる本人がいってるんじゃね?

816 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:22:31.56 ]
MITはライブラリがないからScheme使うのやめたってことなのか

817 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:41:14.71 ]
sussmanさんの話だとSICPをやめたのは時代遅れだからで
Schemeをやめたのはライブラリがなかったからか

818 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:25:52.86 ]
古い言語は捨てられ新しい言語が次々と作られる
一方、ライブラリは足りないから古いライブラリは生きのこる

819 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:51:48.31 ]
>>818
> 古い言語は捨てられ新しい言語が次々と作られる

かくして世の中は思い付きで作られたポッと出の出来損ない言語とバグだらけの処理系だらけになる。

820 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 01:05:05.25 ]
出来そこないの処理系の多さではSchemeがダントツでしょうな



821 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 01:42:18.24 ]
sussmanって人SICPの著者?

822 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 02:04:31.01 ]
>>818
でもLispにはライブラリがないから、捨てられるね
だれか、QtをSchemeにバインディングしてくれないかな

823 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 04:25:26.26 ]
Qt程度ならSchemeで実装すりゃいいじゃん

824 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 06:55:28.14 ]
>>820 はぁ?
そもそも仕様ができそこない、というゴミ言語が山ほどある時点で、
Schemeがダントツとかありえません。おまえの脳みそが出来損ないw

825 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:00:03.59 ]
Schemeのマクロだけを詳しく噛み砕いて解説した本出した
ら売れるよ

826 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:32:29.79 ]
ライブラリの具体例がUIというのはすごいな
全然具体的じゃないがいかにもありそうな話だな

827 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 09:15:33.73 ]
問題の切り分けができない負けず嫌いが教育を語る

828 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 09:17:43.99 ]
>>827
救世主現る!
解決お願いします。


829 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 09:45:11.42 ]
>>824
仕様ができそこないがどんな意味で言ってるのかわからんが
とりあえず実装数の多さじゃSchemeはダントツだな次点はJavascriptか



830 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 10:33:03.39 ]
みんなで処理系ばかり作っても意味ないだろ
ライブラリ作れっての



831 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:02:53.14 ]
処理系向けのテクニックが開発されていく言語というのがある。
そういう分野では処理系たくさん作られることが重要。

832 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:18:26.33 ]
最近の処理系向けのテクニックってどんなんがある?

833 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:00:49.69 ]
少なくともRacketはライブラリ充実してるぞ

Chikenは既存のC++ライブラリをくっつけやすいから
違う意味で充実している


834 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:45:56.76 ]
racketは名前が駄目だわ

835 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:52:31.82 ]
「ライブラリが充実」で想定しているレベルに齟齬があるような気がする。

本業がプログラマでなく別の専門を持っている人たちが書いたようなもの、
生物屋さんがゲノムデータベースを簡単に検索して実験データと付き合わせるために
作りましたとか、経済学の人たちがセンサスの情報を統計処理しますとか、
言語学で文献のデジタル化をやっててその解析に使える便利ライブラリですよとか、
そのへんの層の厚さなんだよね。決め手になるのは。Schemeにそれが無いとは
言わないけれど。その分野の専門でない人間が聞き齧り、読み齧りで書いた
ライブラリって、専門の現場のフローに合ってなくて使えないこともままあるし。
現場の人が現場の事情に合わせて書いて、それが蓄積されてるってのはでかいよ。

CS教育の話をしてるんだから関係ないと思うかもしれないが、研究にせよ開発にせよ、
今は別の分野の専門家とコラボしてソフトウェア工学を使ってその分野の問題を解決
する重要性が大きいし、今後もそっちが大きくなる一方だから。

836 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:57:02.23 ]
日本の大学では
インタプリタの作り方教えて
リスパーの数を増やすことがCSだから

837 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 16:17:03.97 ]
そういえば俺の大学には記号処理という名のcommonlispの授業があったな

838 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 16:20:06.29 ]
つか別にインタプリタの作り方をやらなくて良くなったってわけじゃなくて、
メタサーキュラーインタプリタくらいは基礎教養としてスタート前にやっといてくれ、って
くらいの話だと思う。

おいらは自分で何か書くならLispだし、Lisperが増えて欲しいとも思っているが、
だからこそ「それLispにもあるよ」ってタカをくくってる意見には賛同できない。


839 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 16:21:37.24 ]
MITの学生は入学前にメタサーキュラーインタプリタ知っていると?

840 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 16:31:59.82 ]
知ってる学生もいるだろうし、知らなかったら1ヶ月で詰め込める。
web.mit.edu/alexmv/6.S184/

てか大学の実験や実習なんて教わってないことだらけで、そんなのは自習するのが前提でしょ。
俺は日本の大学だったけど。

「スタート前にやっといてくれ」はちょっと変か。「講義でやらないけど知らなかったら自分で
やっといてね」くらい。



841 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:16:07.16 ]
chez schemeの開発者の一人が書いた本(mit press)らしいけど、
読んだ人がいるなら感想を聞きたい

The Scheme Programming Language, 4th Edition www.scheme.com/tspl4/

842 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:59:11.32 ]
>>835
その辺の層の厚さが一番あるのはRとperl
pythonは正直いまひとつ 劣化matlab


843 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/01/24(火) 18:59:38.06 ]
>>841
日本語版 (3rd だが) なら読んだことがある。
SICP や Little Schemer と違って、 Scheme の言語機能の解説が多くを占める。
C++ にとっての `The C++ Programming Language' みたいなもの。

4th では R6RS を前提とした内容に大幅に改定されているはず。


844 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 19:05:02.20 ]
>>835
非本業プログラマはCL一択でいいと思うんだけどね。gccに匹敵する速さだし、
REPLでelispとも親和性が高い。
>>842
PerlってRみたいに統計関連のツールって豊富なの?
Perlでやると遅くてメモリ食うわで最悪な選択な気がするんだけど。

845 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 19:37:11.83 ]
>R6RSを前提
えーー

846 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 19:38:49.24 ]
R6RSってR5RSと比べて全体的にどんな感じで変化した(させた)んでしょうか?

847 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 19:40:16.84 ]
CLは美しくない

848 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/01/24(火) 20:17:45.36 ]
>>846
色々あるけど、モジュール化をどうするかが一番大きな議題だったように思う。
結果的にライブラリという概念を導入した。

# それさえ出来れば後々の規格改定で機能を追加することになっても、
# ライブラリを分けて共存を図ることもできるという思惑もあったみたいなのに
# R7RS では仕組を変えようとしてるので、おまいらもちつけと言いたい。
# しかも新しい提案も R6RS と劇的な差があるわけでもないし。

それとマクロシステムが拡張されて非健全なマクロ等も書けるようになった。
マクロで問題になる、マクロ展開時にどの環境を使うかという点はフェイズの概念を導入することで解決した。
フェイズはライブラリ単位で決まるので、上述のモジュール化の仕組みとも密接に関連している。

レコードや文字列ポートなど、多くのケースで便利な機能がちょろっと追加された。
R5RS までは小さい言語コアだけ決めて残りは SRFI や各処理系の裁量にお任せという感じだったのが、
ここへ来て方向性が変わった感じがする。

細かいことは↓を参照
practical-scheme.net/wiliki/wiliki.cgi?R6RS%3a%E5%A4%89%E6%9B%B4%E7%82%B9

849 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:13:32.52 ]
CL、Scheme(R5RS)、Scheme(R6RS)、Clojure
利用者の割合はどんなんだろ

850 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:06.24 ]
>>841
3版と4版を読んだけど、無難な言語解説書。
深い事は書いてないから、なんたらハンドブック系の価値。
3版なら無料で読める。
www.scheme.com/tspl3/

>>842
Fortranも忘れてはいかん。科学屋さんが大量に書いてる。
基本的に専門分野ではRやFortranみたいな特化された言語が使われてる気がする。



851 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:24:53.98 ]
???
4版も無料で読めるような気がするけど
気のせい?

852 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:26:23.93 ]
あとでFBIの職員が集金に来ます

853 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:31:12.71 ]
>>851
ごめん、3版しか使ってないから忘れてた。
本文読めるのなら質問しないで良いじゃないか・・・。

854 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:43:30.92 ]
>>847
チンコはデカい方がいいだろ。
emacs子と親和性高いのは重要だよ。

855 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:13:28.44 ]
>>835
> CS教育の話をしてるんだから関係ないと思うかもしれないが、研究にせよ開発にせよ、
> 今は別の分野の専門家とコラボしてソフトウェア工学を使ってその分野の問題を解決
> する重要性が大きいし、

応用プログラムを書くのとCSを専門として学ぶというのとは目的が全く違う。
数学で確率論やルベーグ積分を学ぶのと保険のアクチュアリーになるのが全く違うように。
今のCSは応用に向いた教育ばかりになってしまっていてCSを専門に学んだはずの人が
趣味や独学でプログラミングに上達した人と大して質的な差がなくなっている。

応用としてのプログラミングなんてものは、パソコン1台あれば専門教育なんて受けなくても勉強して身に着けようと思えば着けられるんだよ。
だって、プログラムを書くだけならば必要な知識はカタログ的な平板で雑多かつ多量の知識(ライブラリとかAPIとかね)なんだから。

そうすると、CSの教育を専門的に受けたというアドバンテージをどこに求めるのか、と言えば
体系的な知識、例えば雑多な様々なプログラミング言語を構成している基本概念やそれらの間の関係をきちんと理解しているとか、
それに基づいた様々な技術(プログラム解析とかね)を体系的に身に着けているといった点に求める事になる。

プログラミングに限らず他の分野でもカタログ的な知識は下手をすると素人マニアの方がプロよりも上だったりするわけだ。
例えば鉄道ヲタクの連中は、△△電鉄の3000型のブレーキは初期型は××製だったが後期型車両からは○○製になり
その結果として制動能力がどれだけ上がって云々なんてのを知っていたりする。下手をすると当の△△電鉄の関係者や
その3000型車両を設計・製造した車両メーカーの技術者よりも型番なんかに関しては詳しかったりする。
だけど、そんな知識を持っていても、その鉄ヲタは電鉄会社の整備主任も車両メーカーの設計技師も務まらない。
何故ならば、彼らに必要な知識は体系的なもの、つまり(科学や)工学だからだ。

今のCS教育は同じカタログ知識の教育に偏重していると思う。これでは素人プログラマと変わらない人材しか育てられない。
Schemeの長所は言語概念を体系的に教えるのに非常に適した言語だという事。だからCS教育に向いているんだ。

856 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:21:31.15 ]
>Schemeの長所は言語概念を体系的に教えるのに非常に適した言語だという事。

これLisperの主観でしょ

857 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:29:06.45 ]
今の時代に大学でしか学べないCSって何があるの?
むしろ大学に行くと教える側の専門に縛られたりするんじゃね?

858 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:31:27.55 ]
その大学で扱っている専門を知った上で入るならいいんだけど、
大抵の受験生は自分が受かりそうな中で偏差値が高いとか、
家から近いとかで大学選んでそうだし。

859 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:50:16.59 ]
>>856
どういうことなんだろうな、Schemeだけで言語概念が云々ってのは。
lispが全てS式だからとか、再帰処理が構文解析器とかにマッチするとか、そんなん?
プログラミング言語論の授業では特定の言語に拘らず色んなパラダイムを紹介されたけどねえ
それと実装は別だな。特別に指定されない提出物なら全部pythonで書いてる
楽だから。何より楽だから。
matplotlibも便利でエクセルなんか使わずに結果をプロット出来るし
まあ他の言語もgnuplotとか使えるだろうけどmatplotlibのが楽

860 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 03:47:33.62 ]
は?抽象構文木を直接扱って、いかなるパラダイムでも実現できるのは、現状Lispしかないだろ。
楽なのが良いならPerlを使うべきだろうな。ライブラリがダントツで、人為的な強制もない。
一つの言語で全て出来るという幻想を持ってるようだけど、長く続けてると言語処理系やOS等の下位層を直接弄る事態になるから。
複数の言語が出来て当然だから。年に一つは新しいプログラミング言語を憶えるべき(特にパラダイムが全く異なる言語を)だから。構文抽象というパラダイムはLispにしかないから。



861 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 04:00:32.63 ]
誰が、一つで全てなんて幻想を持ってるって???まったく、LisperとPerlerがそうなだろうなあ
最も一つに拘ってるのがLisperだからな、初めから矛盾してる
指定されなければpythonつってるのに、それすらも読めないのかよ
Cを指定されることが多いわ。こだわりが無いからpythonなんだよ
お前みたいな頭がダイヤモンドより固い奴が、完全に思考停止して
毎年プログラミング言語を意味もなく覚えたり、意味もなく弄って何かやってるつもりになってると思うと頭がいたくなるわ
プログラミング言語はツールだろ。いや、お前にとってはオナニーの道具なのかもしれないけどさ
必要に応じて使い分けてるだけなんで、ただやることもなくプログラミング言語の中をウロウロしてる浮浪者に何か言われる筋合いはないです

862 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 04:14:03.09 ]
長文はやめて3行以内に分けてレスしよう
まるで人が多いかのようにみえるよ!

863 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 04:15:19.05 ]
議論なら良いけど、喧嘩なら他所でやってくれないかな。
自分の常駐してるスレでそういうのやられたら嫌でしょ?

864 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 04:44:02.56 ]
Lisperが持ってる「見下し」というスペシャルスキルによって、Lispの実のない権威は支えられている
全てのパラダイムが実現できても、実際のプロジェクトにはほぼ使われない
Lisp万能論車の妄想に付き合うのは面倒だが。少なくとも一般人は自由を強いられたいとは思ってないよ
プログラミング作法があるのならそれに合わせたいの。趣味的な誤差でもね。特に見やすさは強制でなくても重視している、残念ながら。

865 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 04:50:45.36 ]
必要に応じて使い分けるなら、構文を知るためにはLispが便利なのも分かるだろ。
一年に一つの言語は「達人プログラマ」だよ。もちろん読んでるよな。

最初から議論じゃなくて喧嘩だろ。未踏に落ちたか知らないけど、変なLispアンチ野郎との。

866 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:00:04.25 ]
作法でなくて人為的に一部の操作をやり辛くしているのが問題だと言ってるんだよ。
書きたい事の足を言語が引っぱるの、しかも実装の必要でもない作者の主義とやらで。
Windozeと同じく一般人がやりたい事はやり易いけど、深い事をやろうとすると足を引っぱろうとする。
実際のプロジェクトに使いたいならscheme以外の言語をどうぞ。CLとかどうでしょうか。あるいは自分が頑張ってschemeのライブラリを書いて下さい。R7RSの議論に参加するのも良いのではないでしょうか。
但しLispのみが構文抽象を扱える重要な言語であるという事実は変わりません。

867 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:00:36.66 ]
もちろん最初から今現在に至るまでずっと両方を邪魔に思ってる。
言わせんな恥ずかしい。

868 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:04:32.64 ]
いや無批判に引用すんなよ。一年に一つの言語なんて馬鹿の極み
それくらいも分からないの?本を読んでも意味をなしてないね

だからさあ、構文を知るためにとか大袈裟なんだよね。噴飯物だよ。それも何かの本の引用なの?
Schemeは書けるけど、別に構文を知るためにSchemeを勉強したわけでもなければ
Lispを見たことなくても構文の勉強は出来るし。そうしてる大学も多いだろ

869 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:06:07.82 ]
邪魔らしいので私は消滅、さらばだ。

870 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:09:23.51 ]
>>866
Lisp至上主義の成れの果てだな、視野が極端に狭い



871 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 05:11:24.33 ]
構文を知るためだけの言語

872 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:24:03.06 ]
むしろ構文が1種類しかない言語なんだが

873 名前:デフォルトの名無しさん [2012/01/25(水) 07:47:19.29 ]
Lispは重要な言語じゃないだろw

874 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:21:19.67 ]
わかった。
見下されたい奴は並べ↓

875 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:39:08.59 ]
同じ括弧に見えるけど構文は1個じゃないんだよ

876 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:43:17.70 ]
先頭にあるシンボルを解決した結果が関数かマクロかによって、S式(リスト構造)の
解釈(インタプリテーション)が変わるだけであって、S式を表現するための構文は唯一だ。

あとはアトムのリテラルの記法がいくつかあるだけで。

877 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 09:05:18.84 ]
言語の話をしてるんじゃないの?
ご自分で言語なんだがーつってるのにw

878 名前:855 mailto:sage [2012/01/25(水) 11:36:40.67 ]
>>856
> Schemeの長所は言語概念を体系的に教えるのに非常に適した言語だという事。
>
> これLisperの主観でしょ

違います。
ついでに言えばSchemeと他の大多数のLispとは上の一点に於いて全く違います。
ほとんどのLisp(典型はCommon Lisp)は基本的な言語概念が見えにくくなっています。
実用を重んじて言語設計された結果として、あまりにも余分なものや複合的なものが多いので。
(抽象構文木を直接的に表現できるデータ構造を基本データとして持っているという点はもちろんLisp族すべてに共通ですが)

SchemeはGuy Steeleの若き頃のMITレポートの数々を見ても分かるとおり、それまでの言語概念を突きつめて考察した結果から
可能な限り単純な要素概念だけを言語としては提供して、プログラムを書く側はそれらを自在に組み合わせられるようにする
という言語設計哲学に基づいて言語仕様が作られました。その点では他のLisp族言語よりもAlgol 60やAlgol 68の精神を引き継いだ言語です。
(Revised^6で台無しにされてしまいましたが)

Schemeの開発者たちがAlgol 60のシンプルで例外の少ない言語という精神を引き継ごうとしている事は、Schemeの言語仕様の
タイトルにも表されています。

RubyにせよPythonにせよ、もっと他の言語にせよ、実用で広く使われるのを狙って作られた言語は、Scheme以外の他のLisp系言語と同じく
言語概念が基本要素でなく複合的であったり様々なシュガーで最初から修飾された形でプログラマに提供されているケースが多く、
基本要素概念を単独で用いたいと思うと逆に回りくどい書き方をせねばならないようなケースがしばしばあります。
そこがSchemeとは決定的に違うのです。

Schemeは、少なくともRevised^5までは実用よりも言語の基本要素概念を学び理解する為の言語として言語仕様が策定されて来ました。
だからこそ、実用的な構文は最初からは入れずに体系的な構文拡張の方法を導入して、「シュガーが欲しければ自分で好みの言語に仕上げなさい」
というスタイルで実用側からの言語仕様拡大の圧力に対応して来たのです。

856のような人はSchemeをきちんと勉強した事がなく言語の基本要素概念とは何かを真剣に自分で考えようとした事がないのでしょう。



879 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:44:40.41 ]
>>844
CLでgccなみに高速プログラム作るめんどくささは
cで最初から作った方がましな感じ

880 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:48:28.76 ]
SchemeがLex/Yaccでどんな言語にも変換可能なら
あらゆるアルゴリズムをSchemeで書く有用性もあるのだけどねえ



881 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:50:54.29 ]
>実用側からの言語仕様拡大の圧力に対応して来たのです。

対応できてないから廃れてんだよ

>言語の基本要素概念とは何か

その基本概念も絶対的なものじゃないでしょ

882 名前:デフォルトの名無しさん [2012/01/25(水) 13:17:10.43 ]
>>881
最後の行は内容ある反論できずに相対主義持ち出して議論から逃げた典型だなw

883 名前:デフォルトの名無しさん [2012/01/25(水) 13:45:30.40 ]
Schemeが廃れた原因って10年ちょい前からのプログラミング言語論とかプログラミング論教育の軽視だろ
ACMのカリキュラムでもその手の科目が消えるとかインディアナのFelleisenとか騒いでたし
ACMのカリキュラムも881みたいな
知ったかプログラマに合わせたってことだろ

881も自分に内容あるって言いたきゃ
Schemeとは全然ちがうけど
同じように見かけもフォーマルなセマンティクスも単純な
コンセプトや構文だけで構成されてる
実用言語の具体例あげろよ
878の主張は実用言語は実用めざすから否応なしに複雑になっちまうってことだろ

884 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:35:29.21 ]
言語の基本要素概念とはなんなのか?
まずは855以外の人に聞きたいな

885 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:42:51.26 ]
>>884
おおざっぱだけど言語仕様と言語の基本要素概念は同じものっていう定義でいいだろ。

886 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:50:17.74 ]
>>885

>言語概念が基本要素でなく複合的であったり様々なシュガーで最初から修飾された形でプログラマに提供されているケースが多く、
>基本要素概念を単独で用いたいと思うと逆に回りくどい書き方をせねばならないようなケースがしばしばあります。

855の人の意見だと違うものだと取れるけど

887 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:18:04.18 ]
コレはアレから導出できる、みたいなのを突き詰めていった時に
最後に残る要素はなんだろうみたいな話では。

888 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:31:03.57 ]
最後に残る要素は何?

889 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:37:32.86 ]
Lispの簡易実装を読んだらJavaScriptの動作が腑に落ちた。
てかJavaScriptじゃなくてLispにしてくれたらよかったのになあ。

つかHTMLがS式だったらよかったのになあ(笑

890 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:38:41.00 ]
>>888
愛だろ、愛



891 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:40:58.82 ]
>>889
世の中の人が欲しているのは
DartとかCoffeeScriptでLispではない

892 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:48:34.55 ]
(define (f) 3)

int f(void) { return 3; }
は意味論的には同じだけど、
(define (f) 3) => (define f (lambda (x) 3))
で、これはSchemeがCにない無名関数という基本概念要素を持っている。
とか
(define (f x) x)
をCでやることはできない
これはSchemeがCにない動的型付けという基本概念要素(?)を持っているから、とか?

言語仕様のなかでユーザーが利用できる概念のうちsyntax sugarでないもの?
で、Schemeの基本概念要素は標準的なな言語が持ちうる概念を網羅している、という主張?
ちゃんと考えると(怪しい)論文ができあがりそう。

893 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:51:23.81 ]
仕様が50ページだから基本要素概念とはなんなのかって突き止められるし、実感できるけど。
www.unixuser.org/~euske/doc/r5rs-ja/r5rs-ja.pdf

仕様が500ページあると精読するだけで何日もかかるし、実感するには何ヶ月もかかるし、
全部突き止められるのか、怪しい。実装をみるとなると500ページに相当するコードも
読むハメになって、ゲロ吐きたくなる。そして言語の再実装をする奴ほとんどいないだろ。

894 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:55:05.65 ]
実用言語を題材にしても全部の仕様を扱うわけじゃないでしょ
Ocamlのサブセットのmini-Ocamlはたった2000行だっていうし

895 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:03:26.90 ]
処理系実装時のコード量の話なんてしてないのに

896 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:05:51.84 ]
>>895
>実装をみるとなると500ページに相当するコードも
>読むハメになって、ゲロ吐きたくなる。


897 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:14:50.51 ]
>>894
7行スレに3行でLispっぽいものがあがってたけどw

898 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:22:16.92 ]
そんなこと言ったらLispでそのままeval1行じゃん
Camlのサブセットも似たような事をしてる
そういうズルを見て言語を理解したと言えるのかよ

899 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:37:27.53 ]
ルールが一個というのは馬鹿らしいが、ちなみにLispのBNF記法
cui.unige.ch/db-research/Enseignement/analyseinfo/LISP/BNFindex.html

なるほど確かに小さい
このサイトにあるJavaや、Python公式ドキュメントに置いてあるものと比べるまででもなく
根本的に少機能なんだよね。これで全ての機能を実現出来ると反論すかも知れないが
そんなの他の言語でも言えること。結局これが実装は出来ても実用は出来ない理由
そもそもプログラミングする上で(Lispでも)仕様を全部読む必要なんていない。ゲロ吐きたくなる

900 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:42:54.49 ]
BNF記法がなくてコードが仕様の言語とかあったな



901 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:43:27.91 ]
Schemeはlambdaが多機能・高機能すぎて細かい所でネックになる印象

902 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:44:16.12 ]
>>893
その50ページは言い換えれば客寄せパンダ
Scheme特有の概念を普通に説明したら数倍の分量にはなるだろうし
平易な言葉で書き直せば500ページ超えも夢じゃない

903 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:49:07.44 ]
BNF見ても言語は理解できない
C++の例外だけで本になるように
継続だけで本になる
マクロだけで本になる
末尾再帰だけで本になる

904 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:49:11.93 ]
>>900 parse.y を読んだこともない馬鹿です、って自白しなくていいのにw

905 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:02:55.57 ]
parse.yで対応できるのは簡単な文法だけ
いまの流行りは手書きだろ

906 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:05:17.97 ]
LISPはパースとかそういう「どうでもいい部分」をほぼ省略できるのが魅力なんだよ

907 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:08:10.24 ]
>>906
言語を使う側からしたら関係ない話だな

908 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:15:05.09 ]
それが言語の仕様読み解くのに関係してるって話だろ
ちょっと前ぐらい読め

909 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:31:40.03 ]
schelogでパースしようとしたら無限ループから返ってこなかった
仕方ないのであきらめた

910 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:35:14.97 ]
>>899
> そもそもプログラミングする上で(Lispでも)仕様を全部読む必要なんていない。ゲロ吐きたくなる
仕様を全部読む必要ないと言うけど、一つの言語を体系的に深く理解して、言語
とはどんなものなのかとか、どういうのが作れるのかとか、ある程度の言語のイ
メージを捉えているから新しい言語でも判断できる話でしょ。

チュートリアルに沿って学習したり、雑務をこなすためにちょっとした雑多な処
理を書いて言語を理解するアプローチも大切だけど、概念を理解してトップダウ
ンで組むのも言語の理解が進む。
>>902
それだと500ページの仕様の言語が5,000ページという話になるじゃん。
pg御大が数学の論文を読むのには時間がかかる。それは一個一個が表現力が豊か
という話で数式とはそういうものだ。



911 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:45:40.04 ]
BNFで読み解ける言語仕様って構文レベルでそ。
>>899のBNFみて分かることって、
LISPって括弧がいっぱいあって入れ子になってるんだなーぐらいじゃん。

912 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:59:30.75 ]
LISPの失敗
・S式をXMLみたいに標準化しなかった(分派ごとに微妙にバラバラ、慢心、環境の違い)
・種類が多い割に今風の静的型とか型推論とか型方面が思考停止状態
その他の欠陥
・括弧がいっぱいあって人を寄せ付けない(見た目が怖い)
・readが成功するまで言語として構文解析できない


913 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:16:56.42 ]
>>912
> ・S式をXMLみたいに標準化しなかった(分派ごとに微妙にバラバラ、慢心、環境の違い)
XMLが絶対善みたいな言い方だな。
> ・括弧がいっぱいあって人を寄せ付けない(見た目が怖い)
htmlのタグ<>が人を寄せ付けないという話は聞いたことないけどなあ。
食わず嫌いな怠惰人間の屁理屈にしか聞こえない。

914 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:21:09.05 ]
<html <head <body <p blah >>>>> とかだったら怖いよ…

915 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:25:10.34 ]
・使われないことをユーザのせいにする

916 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:26:45.54 ]
htmlはネストしてはいるけど、あまり深刻ではないんだよな
冗長な終了タグがあるからだけど
何が終わったかが判るから、閉じ括弧の連続よりは心理的ダメージがが少ない

917 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:28:56.94 ]
角括弧[]のお陰で心理的ダメージ軽減したんじゃなかったんですか!?

918 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:32:36.51 ]
ちょっとつけたし
そこにある名前を見るだけで何が終わったかが判るから、
閉じ括弧の連続よりは心理的ダメージが少ない
名前を利用してエラー検出もできる

S式だと閉じ括弧から開き括弧の横の名前へという目線移動が発生する



919 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:36:03.55 ]
冗長なのは括弧を数えるのにエディタ使えと言うのと同じだから
手書き派以外には受け入れられる
属性ズラズラ並べられるのは嫌いだけど

920 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:56:05.25 ]
>>914
> <html <head <body <p blah >>>>> とかだったら怖いよ…
(html (head (body (p blah ))))
こうすると普通だけどなあ。

vim, emacsだったら(html (head (body (p blah ))))の方が扱いやすいし、冗長な終了タグが
問題なんじゃないの。冗長な終了タグが必要な時ってある? インデントもあるんだし。



921 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:58:31.13 ]
Cの中括弧は複文インデントの文化とネストが比較的緩いから
}}}}}}}}}}こんな連続で閉じて数える事は少ない
つまりLISPは括弧でずいぶん損をしてるという話

922 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:05:08.79 ]
>>920
なんか別スレで迷惑かけてる人と同じ匂いがした

923 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:07:27.06 ]
連続括弧 ))))) とかは、DrRacketみたいなLISP対応エディタ使わないとキツいよね。

924 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:07:54.86 ]
そういえばこんなスレがあった

【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
toro.2ch.net/test/read.cgi/tech/1140006937/

925 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:08:12.88 ]
>>920
(html (head (body (p
blah
))))
いくら慣れてもどの閉じ括弧が何と対応するかは瞬時に判らないでしょ

<html><head><body><p>
blah
</p></body></head></html>

これだと3行目だけ見て判る

926 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:08:23.12 ]
S式の方がやっぱりスッキリしていない? あとがんばれば1ページで表示できちゃうぞ。
そして、文字の色付けすればもっと文句言えなくなるだろ。

XML
ttp://toro.2ch.net/test/read.cgi/tech/1140006937/4
S式
ttp://toro.2ch.net/test/read.cgi/tech/1140006937/17
>>921
エディタにやってもらって数えないから。
エディタなしでもカッコが一つ少ないとかは、なんとなくわかるけど。

927 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:09:17.32 ]
>>921
文末に;の方がうざくね?


928 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:13:40.84 ]
すっきりしてるけどもw
いくら単純でも)))))))))))))))うわあああって人もいるよ
色弱な人は色分けされても困るし


929 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:15:10.36 ]
見慣れない人は、これでもかと連打される閉じカッコには狂気を感じると思うw

930 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:50:15.02 ]
短いが正義ならあれだ、みなまで言わない



931 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:53:47.26 ]
>>925
> <html><head><body><p>
> blah
> </p></body></head></html>
(html
(head
(body
(p blah)
)
)
)
でも
(html (head (body
(p blah ))))
でもいいんじゃないの。

本文これだけなら個人的には(html (head (body (p blah ))))でいいかな。

932 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:58:18.49 ]
あとそもそも論だけど、ある開始タグ・終了タグを変更したいときって開始タグを変更して、
終了タグを変更するわけでしょ? 面倒くさくない?

933 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:00:47.66 ]
で、さっき思いついたけどS式でも任意オプションで
終了タグを入れられるようにしたらどうかな

(html (head (body (p
blah
/p)))/html)
readのエラー検出は向上すると思う


934 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:14:50.76 ]
うむ、]で半端に区別するよりは良いな

935 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:22:55.71 ]
>>933
うざいだけじゃね?
適切なインデントと対応する括弧へのジャンプができるエディタがあれば括弧なんか無いのも同然じゃろ


936 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:26:11.95 ]
問題は、lengthとかリスト数えるとこでいちいち考慮しないとダメな点だな
readとwriteの対称も維持するとreadで省くのもあれだし
まあ却下だなw

937 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:32:55.78 ]
半端に入れるぐらいなら終了タグ強制のS式と別のデータ構造にした方がいいか
もうこの話はやめるわ

938 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:46:21.31 ]
>>937
現状、>>926のS式がエレガントって話でしょ。

939 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:46:40.43 ]
括弧無しでは格好がつかない

940 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:03:00.75 ]
インデント(タブ)もカッコも同じようなもんだけどね
html
head
body
p blah



941 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:05:03.87 ]
>>940
YAMLかよ!

942 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:19:29.01 ]
>>901
> Schemeはlambdaが多機能・高機能すぎて細かい所でネックになる印象

別にSchemeのlambdaは多機能でも高機能でもない。
単にCやJavaや多くの言語みたいに一度しか使わない関数(手続き)に
わざわざ名前を付ける必要はなくて、関数(手続き)を直書きできるというだけ。

Cの場合、関数には必ず名前を付けなければならない。つまり関数は名前を付けた一種の定数tなわけだ。
ところがそれへのポインタは変数に入れられる。
さらにデータの型(関数の引数や結果の型)として関数へのポインタという「型」もあって他のintなどの型と
同じように使えるかに見える。

つまりCでは整数とか浮動小数点数とか構造体とか関数とかポインタいったデータの種類と記憶域属性(auto, static, extern, constなど)とが
自由に組み合わせられないという意味で直交しておらず、関数に関しては妙な制約がある(constしかダメ)ということ。

そういう制約があるのでCではデータの種類や記憶域属性を基本要素概念として理解するのが面倒になる。
Schemeには基本要素概念同士の組み合わせに関してそういう奇妙な制約がほとんどない。(すぐには思いつかない)
そういう意味で個々の基本要素概念は独立で、各々の概念を理解すれば後は自在に組み合わせて使えば良いから明快なのだ。

943 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:52:26.35 ]
Javaは次のバージョンからlambda使えるようになるみたいだよ

944 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 02:08:36.17 ]
その前にJavaって関数内関数を定義できたっけ?
その関数内だけでよく使う手続きが、関数の外に宙ぶらりんになってるの見るとイラッとくるよね(´・ω・`)

945 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 02:09:05.31 ]
>>887
CTMを思い出した。そのパラダイムを実現するための
ギリギリ最小の構文は何かという観点から、
宣言的プログラミングに始まり、構文を少しずつ付け足して世界を広げていく本

記述はOzとかいう言語で、同じような話をLispでもできるだろうけど、
Lispで行うべき必然性もないような気がする

946 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 08:04:58.59 ]
>>943
C#3.0「ラムダ式があれば匿名メソッドなんていらんかったんや……」
C++11「Javaはラムダ式見送ったの?俺もう入れちゃったんだけど」
ECMAScript5「俺はまだ本当のラムダ式を導入していない、この意味が分かるな?」

947 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 08:39:32.65 ]
>>855
きちがいは下手下手連呼せずに黙ってろ

948 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 09:02:00.45 ]
>>947 反論できなくなると黙ってろしか言えない馬鹿は死ね

949 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:56:44.56 ]
>>944
おれもCやC++使うとき、関数内関数が書けなくてイラってするときがよくある。
昔CかC++で関数内関数を書いた気がしたんだがきのせいだったんかな(笑


950 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:58:49.49 ]
GCC拡張じゃないの



951 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:20:11.55 ]
>>949
Pascalならあったな

952 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:25:25.15 ]
最近はclangならblocksっていうのがある。

953 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:50:56.14 ]
>>949
C++なら関数内structでstatic関数定義すればいい。

954 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 12:56:42.89 ]
>>953
それはやったことあるけど、書くのもアクセスするのも面倒だよなー(笑

955 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 13:02:43.07 ]
struct xxx{static }
書くときに増えるのは20文字。呼び出しで増えるのは4文字。
それを面倒といわれても。

名前なしで定義できないのは確かに面倒。
名付けに必要なエネルギーはbodyを書くそれを上回ることが多い。

956 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 13:09:29.92 ]
> 書くときに増えるのは20文字。呼び出しで増えるのは4文字。
書くときに増えるのは20文字。呼び出しで増えるのは5文字。


957 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 15:09:51.28 ]
>>953
こいつでC++コードを生成すればいいだろ
www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt


958 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 18:05:36.22 ]
最近meta circular evaluator絡みでは、
Javascript/SpiderMonkeyのRiverTrail拡張が面白かった。
Lisp, Schemeの言語拡張だと、Racketの#langがアドホックだけど面白いね。
このスレではRacketを酷評する人もいるけどw

959 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:05:59.20 ]
>>958
Racketは独自の道を歩んでいる感がなぁ(大抵のlisp族はそうだけどさ)


960 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:15:04.79 ]
Racketって日本語の扱いはどんな具合なの?



961 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 23:40:50.41 ]
>>960
データの処理はUnicodeの範囲で標準でサポート。iconvを利用できるので、
エンコーディングの変換もほぼ問題ない。

docs.racket-lang.org/guide/encodings.html
docs.racket-lang.org/reference/bytestrings.html

UIについては全部英語だったと思うけど、Racketになってからは触ってないので知らん。

聞くよりは試した方が手っ取り早いと思う。

962 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 09:24:20.85 ]
愛昆布

963 名前:デフォルトの名無しさん [2012/01/28(土) 11:52:11.03 ]
Schemeでclisp位の機能を持った処理系は有りますか?
Racketは高機能すぎてもう少しシンプルなのがよいのですが・・・
guileやgausheはタブコンプリーションや矢印キーが使えなくて使い難いです。


964 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:23:14.04 ]
>>963
それは処理系の機能というより環境の話だなあ。
gaucheなら、Emacsで誰かが補完つきのgauche-modeってのを書いてた気がする。
矢印のヒストリならコマンドラインでrlwrap使ってもいいし。
swankは誰か書いてたっけ?
まあ、そういうのを自分で揃えなくちゃならないのが面倒ってのはわかる。


965 名前:963 [2012/01/28(土) 13:22:32.06 ]
rlwrapをインストールしてみましたがこれは便利です!
有り難う御座いました。

emacsだと便利な機能は豊富そうですがemacsは使っていませんし、此れだけの為にインストールしたくありません。


966 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:11:04.32 ]
>>963
guile1系とgaucheを使えばいいいんだよ。


967 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:46:34.09 ]
readlineをwrapすればいいんだよ

968 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:04:53.75 ]
windowsでschemeのパーサー機能を利用したプログラムを配布したいです
clispならこうするようですが
stackoverflow.com/questions/25046/lisp-executable
schemeでexe化できるのはありますか?

969 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:22:44.60 ]
Chickenかbiglooが便利。
gaucheでもgauche-statifierを使えば一応は出来る。

970 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 16:24:19.87 ]
>>965
rlwrap gauche でぐぐれば、gaucheの関数名補完できるようにする方法も出てくるよ。




971 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/01/28(土) 17:03:30.76 ]
>>968
exe って言うからには Windows での話ってことでいいのかな。
Gauche のソースコードの中にある mingw-exify が使えると思う。
これは見ればわかる通りコードを文字列のまま埋め込むだけのものなので期待しているものかどうか。
gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/mingw-exify;hb=HEAD
Windows では gauche-install や gauche-config 等が exe になってないと使い勝手が悪いので用意したということみたい。

ライブラリをプリコンパイルするための機構である precomp を使う方法もある。
gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/precomp;hb=HEAD
これは C のコードを生成するのでそのまま gcc 等でコンパイルすることは出来る。
(C のコードと言っても Gauche VM 用のバイトコードが形式として C になるだけ。)

どちらの方法でも VM やライブラリの結合までは面倒見てくれない。
exe 化というのがどの程度のことを期待しているかにもよるけど、
今のところコマンドひとつ、関数ひとつで全工程をやってくれるような都合の良いものは無い。
Gauche のソースコード自体をいじることも含めればどんなことでも出来る可能性はあるわけだけど、
それが出来るくらいならこんなところで訊きもしないだろうしなぁ。

自分が作ったプログラムに必要な部分をピックアップして同梱するのが手っ取り早い配布方法じゃないかな。

972 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:21:13.49 ]
>>969
ありがとうございます。
gnupackのcygwin経由でchickenをインストールし
www.h7.dion.ne.jp/~samwyn/ChickenDoc/Getting%20started.html
にしたがってcsc -o palindrome palindrome.scmとしたら実行バイナリができました

ですが、chickenを入れていないパソコン用に
静的リンクしたスタンドアロン型実行バイナリを作ろうとして
csc -o palindrome -static palindrome.scm
とすると gcc: /usr/bin/libchicken.a: no such file or directoryとなります
調べたら/usr/lib/libchicken.aがあったのでこれを使うようchickenのコンパイラに伝えたいのですが
www.h7.dion.ne.jp/~samwyn/ChickenDoc/Using%20the%20compiler.html
を見てもどう設定するかわかりませんでした
どうすればよいでしょうか

973 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:27:11.38 ]
>>971
はい。windowsを想定してました。
そうなるとcのコードで書き出してgccでexe化することが
無難かと思うようになりました。


974 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:38:20.72 ]
>>972
マニュアルの「コンパイラの使い方」の中の「生成された C ファイルを配布する」の節。
Cのソースを吐かせて、gccでコンパイル。

975 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:41:53.68 ]
>>974
そうするしかなさそうですね。ありがとうございました。

976 名前:963 [2012/01/28(土) 17:44:10.34 ]
>>970
関数名補完も出来る様になり凄く便利に成りました。
有り難う御座いました!


977 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 18:21:35.65 ]
>>975
ごめん、-L<DIR> でcscに直接渡せるっぽい。
www.h7.dion.ne.jp/~samwyn/ChickenDoc/csc.html
chickenはドキュメントがそれなりに揃っているのに、リンクや参照が悪いんだよな。
マニュアルもチュートリアルで検索に不便だから、何とかならないものか。

978 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:05:24.39 ]
slimeみたいにタグジャンプをschemeでもしたい

979 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:20:52.13 ]
gambit-c もcを生成してくれるな

980 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:37:17.44 ]

Lisp Scheme Part34
toro.2ch.net/test/read.cgi/tech/1327819028/



981 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:39:53.88 ]
大儀であった

982 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:24:23.00 ]
racketもバイナリ吐いてくれるな

983 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 09:50:35.68 ]
>>977
キーワード site:wiki.call-cc.org/manでググる

984 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 10:42:52.41 ]
gaucheって日本語も普通に使えるけど、日本語のsymbolもeq?で判定出来ますよね?

985 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 11:14:16.69 ]
>>983
ググれば出るけど、マニュアルはもっと構造的に作るべき。
無いと思って調べなかった機能が別のページで見つかったりする。

986 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:13:42.46 ]
ここじゃなくて開発者の目の届く場所で指摘するべき

987 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:47:34.95 ]
SICPの時代は Pascal < Scheme だったようだが結局両方駄目になりそうだ
争いは同じレベルの者同士なんだな

988 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 01:06:59.30 ]
>>987
くわしく

989 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 01:40:00.84 ]
易しくするのが教育だと思ってるような教育用言語は駄目だ

990 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 02:23:12.02 ]
>>987にはPascalのどこが駄目だったかわかるまいな



991 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:29:24.98 ]
どこがダメだったかと言われると、
なかなか難しいかもしれない

992 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 03:40:50.07 ]
C言語に似せればPascalはまだまだいけるよ

993 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 06:24:04.59 ]
プリプロセッサマクロを駆使した、Pascal に似ている C言語なら、見たことがあるなぁ…。

994 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 11:44:42.80 ]
>>993
それをCだからメンテしてっていわれたときは死んだわw

995 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 12:57:36.93 ]
ようやっとLisp慣れしてきたらxml系のマークアップが苦痛になってもうた
なんであんなめんどくさい書式なんじゃー!

;;;と絶叫したくなったので書いた、ちょっとだけ反省している

996 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 13:04:56.69 ]
VisualStudioみたいな自動補完環境がないとxmlみたいなものは無理


997 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 13:59:32.26 ]
マークアップが多いのではなく
少ない生データを無駄に水増しするマークアップが苦痛だ

998 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:09:17.74 ]
sxmlで書いて変換するんだ。何バレやしないさ。

999 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:42:31.08 ]
((lambda(x)(x x))(lambda(x)(x x)))

1000 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 14:44:19.45 ]
その後のメンテを考えるとねぇ……



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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