Lisp Scheme Part32
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2011/04/20(水) 20:41:36.21■前スレ
Lisp Scheme Part31
http://hibari.2ch.net/test/read.cgi/tech/1283507452/
■テンプレ
http://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その7【質問よろず】
http://hibari.2ch.net/test/read.cgi/tech/1270370267/
0002デフォルトの名無しさん
2011/04/20(水) 21:31:06.810003デフォルトの名無しさん
2011/04/20(水) 21:36:04.03それとも large language で規定されるのかなぁ
0004デフォルトの名無しさん
2011/04/20(水) 21:36:44.72ttp://trac.sacrideo.us/wg/attachment/wiki/WikiStart/r7rs-draft-1.pdf
0005デフォルトの名無しさん
2011/04/20(水) 23:15:37.450006デフォルトの名無しさん
2011/04/21(木) 07:35:19.410007デフォルトの名無しさん
2011/04/22(金) 00:41:18.450008デフォルトの名無しさん
2011/04/22(金) 07:18:31.77(define (fn args) ... outputval )
を拡張して出力ふやしたい
でかいライブラリの一部なのであまりいじりたくない。のでglobal varを増やすべきか
(define fn-option-output nil)
...
(define (fn args) ... (set! fn-option-output someval)... outputval )
多値出力で補助的出力を返すべきか
もっとエレガントな方法ありますか?
0009デフォルトの名無しさん
2011/04/22(金) 07:32:51.470010デフォルトの名無しさん
2011/04/22(金) 10:38:33.61オプション出力の扱いがめんどう
0011デフォルトの名無しさん
2011/04/22(金) 17:04:13.47(define (fn args . opt)
... (when (and (pair? opt) (pair? (car opt))) (set-car! (car opt) someval) ...))
か、あるいは継続手続きを取らせる
(define (fn args . opt)
... (if (and (pair? opt) (procedure? (car opt))) ((car opt) outputval someval) outputval))
0012デフォルトの名無しさん
2011/04/22(金) 20:38:12.20receive 使えよ。
0013デフォルトの名無しさん
2011/04/28(木) 20:07:17.670014デフォルトの名無しさん
2011/04/28(木) 20:09:29.400015デフォルトの名無しさん
2011/04/28(木) 20:19:57.470016デフォルトの名無しさん
2011/04/28(木) 22:48:25.88ここでいいのかな?
0017デフォルトの名無しさん
2011/04/29(金) 22:12:13.55ここでいいよ、 gauche ユーザ多いし
0018デフォルトの名無しさん
2011/04/30(土) 18:33:32.90だったけど、 r7rs にはなんか積極的な雰囲気を感じる。
(まだまだこれから議論されるからなんとも言えんとこもあるが。)
やっぱ r6rs は駄目な子なんかな。
0019デフォルトの名無しさん
2011/04/30(土) 18:36:32.92r5rsの部分もない状態なら、r6rsだけやる選択もあっただろうが。
0020デフォルトの名無しさん
2011/04/30(土) 18:40:59.410021デフォルトの名無しさん
2011/04/30(土) 18:54:10.940022デフォルトの名無しさん
2011/04/30(土) 19:24:45.28割と節操なく CL とかの便利機能を取り込んでる。
とは言え、 Scheme らしいスジの良さとのトレードオフの見極めがうまいとは思う。
俺は r6rs ってそれほど駄目だとは思わんのだが、
スクリプト言語として使うならやっぱ Gauche が「楽」という印象。
0023デフォルトの名無しさん
2011/05/01(日) 16:46:47.90セロ弾きのゴーシュのGaucheだよね。
0024デフォルトの名無しさん
2011/05/01(日) 16:50:22.990025デフォルトの名無しさん
2011/05/01(日) 16:51:07.50公式にゴーシュと明記してある
ttp://practical-scheme.net/gauche/index-j.html
0026デフォルトの名無しさん
2011/05/01(日) 17:00:29.13辞書引いたら病気の名前もあった。
Gau・cher's disease n. 【医】 ゴーシェ病 《遺伝性のグルコセレブロシド代謝障害》
0027デフォルトの名無しさん
2011/05/01(日) 17:02:41.910028デフォルトの名無しさん
2011/05/01(日) 17:08:41.890029デフォルトの名無しさん
2011/05/01(日) 17:32:59.920030デフォルトの名無しさん
2011/05/01(日) 17:56:37.61ttp://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aFAQ#H-3anbifwe6ro5a
0031デフォルトの名無しさん
2011/05/01(日) 18:16:48.44音楽関係のライブラリってあるの?
0032デフォルトの名無しさん
2011/05/01(日) 21:12:48.070033デフォルトの名無しさん
2011/05/02(月) 09:28:49.840034デフォルトの名無しさん
2011/05/02(月) 15:54:56.470035デフォルトの名無しさん
2011/05/02(月) 16:18:59.64プログラムが書けません。お題というか、次のステップにつなげるいい本とか
ないでしょうか?
0036デフォルトの名無しさん
2011/05/02(月) 16:34:21.95計算機科学の基礎教養があれば、適当なコード読んでLispのイディオム学べば良いし、
そういった知識がないなら、SICPとかの計算機科学の教科書を読めば良い。
ウェブに転がってる大学の講義の問題をLispで書いてみたりするのも良いと思う。
もっと軽めにやりたいなら、Practical Common Lispとかは割と実用的で軽め。
0037デフォルトの名無しさん
2011/05/02(月) 17:06:32.53何か大幅な変更あったの?
0038デフォルトの名無しさん
2011/05/02(月) 19:54:09.190039デフォルトの名無しさん
2011/05/02(月) 22:28:47.58他言語の小さいアプリを移植してみるのがわりとおすすめ、その際schemeらしい処理に書き換えながら行う
unitテストのついてる奴があればテストで同じ結果がだせるようにすることで間違いなく関数単位で動作させている安心感もえられる
0040デフォルトの名無しさん
2011/05/03(火) 15:01:06.740041デフォルトの名無しさん
2011/05/04(水) 21:04:38.60http://blog.livedoor.jp/insidears/archives/52456597.html
0042デフォルトの名無しさん
2011/05/04(水) 21:48:04.21> そういった知識がないなら、SICPとかの計算機科学の教科書を読めば良い。
ttp://kashino.tumblr.com/post/186793436/technical-requirements-special-software-is
>こだわりのあるオヤジプログラマほど、LISP系の言語じゃなきゃプログラミングの本質を掴めないとか、
>SICPをやらなきゃ云々ということを主張するかもしれないけれど、そんなの幻想だよ。
>現実に課題を抱えた職業プログラマには不適であるとさえ思う。SICPを輪講するくらいなら、実際のフ
>レームワークや言語の実装を直接デバッガで止めながら動作させて「コードリーディング」したほうが、
>何倍も力がつくと思うよ。
SICPはオワコンだからそんなものやっても時間を無駄にするだけ
0043デフォルトの名無しさん
2011/05/04(水) 21:57:22.200044デフォルトの名無しさん
2011/05/04(水) 22:00:29.190045デフォルトの名無しさん
2011/05/04(水) 22:34:59.590046デフォルトの名無しさん
2011/05/04(水) 22:46:47.830047デフォルトの名無しさん
2011/05/05(木) 08:08:17.99正直、文法を拡張したいと、思ったことが無い。
0048デフォルトの名無しさん
2011/05/05(木) 09:18:20.76おれは文法を拡張したい、とは思ってないよ。
おれは個人で巨大なプログラムを、効率よく書きたい。
そのために、マクロでプログラムを短く圧縮して書く以外の
方法を知らない。ある意味しかたなくマクロを使ってる。
0049デフォルトの名無しさん
2011/05/05(木) 10:52:17.00別にSICPとかの教本がLispでポピュラーだから挙げただけで、
アルゴリズムとかデータ構造、計算量などの概念などを無理なく学習できるなら、
手段は別になんだって良いよ。要は計算機科学の知識が大事なだけであって。
フレームワークとか使ってても、ロジック部分は自分で書かなくちゃいけない。
そこで、配列にすべきかリストにすべきか、そういった技術上の取捨選択をするときに、
大学でやる程度の計算機科学の基礎教養がなければ、判断することもできない。
>>47
loopとかiterate、receiveとかマクロないと割とだるいと思うけど、その辺どうだろう。
Schemerだから再帰しか使いませんとか、call-with-valuesで不便に感じませんとか、
そういう人なら要らんかもしれんけど、普段は意識しないだけじゃないかな。
0050デフォルトの名無しさん
2011/05/05(木) 11:02:59.040051デフォルトの名無しさん
2011/05/05(木) 12:51:35.58「現実に課題を抱えた職業プログラマ」 はコンパイラ作らないし
レキシャルアナライザもパーサジェネレータも使う事はないだろうから
当然といえば当然
0052デフォルトの名無しさん
2011/05/05(木) 13:19:58.450053デフォルトの名無しさん
2011/05/05(木) 15:00:19.25俺は、たいていの仕事でお世話になってるんだが
# 全体の量から比べると比率的には小さいけど、
# だからこそ、そんな所に時間使いたくないしね
0054デフォルトの名無しさん
2011/05/05(木) 17:51:04.25とabcl
かKAWA
を組みあわせた人いない?
0055デフォルトの名無しさん
2011/05/06(金) 09:35:05.70そんなものが根拠になると考えているっぽい点で
こだわりのあるオヤジプログラマと同類っぽい
0056デフォルトの名無しさん
2011/05/06(金) 09:54:56.43書き込む前に意味が通るかどうか読み返すクセつけろ。
今日から。
0057デフォルトの名無しさん
2011/05/06(金) 11:38:54.930058デフォルトの名無しさん
2011/05/06(金) 14:21:08.82しかし、そのDSLが括弧の嵐なのでは…
0059デフォルトの名無しさん
2011/05/06(金) 15:39:28.100060デフォルトの名無しさん
2011/05/06(金) 17:29:27.920061デフォルトの名無しさん
2011/05/06(金) 17:42:09.330062デフォルトの名無しさん
2011/05/06(金) 18:07:10.470063デフォルトの名無しさん
2011/05/06(金) 18:10:01.66MSがCSSを提案して飲まれちゃったんで。
0064デフォルトの名無しさん
2011/05/06(金) 19:58:15.25リストはS式、それともS式はリスト?
それともリストとS式は等価な意味?
少々ここら辺が良く分かりません。
0065デフォルトの名無しさん
2011/05/06(金) 20:05:55.30コンスセルはリストを表現するためのものではなくて、例えば二分木も表現できます。
S式はLispデータ全ての総称、あるいはその印字表現です。
0066デフォルトの名無しさん
2011/05/06(金) 20:19:29.26ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/s-expression.html
0067デフォルトの名無しさん
2011/05/06(金) 20:23:54.790068デフォルトの名無しさん
2011/05/06(金) 20:26:08.14どもです、分かりやすい説明ありがとうございます。
お勧めしていただいた資料も一緒に読んでみたいと思います。
0069デフォルトの名無しさん
2011/05/06(金) 22:30:54.28一度onjoさんのLISPサイト見るべき
Lisp的にキモイコードの話はもの凄く参考になる
0070デフォルトの名無しさん
2011/05/06(金) 23:57:20.87エディタのインデント制御ってどうしてますか?
気にしない?
今、win環境でxyzzy使ってて、xyzzyのlispなら自前の制御構造定義した直後に
(setf (get 'mymacro 'ed::lisp-indent-hook) 1)
とかやってるのですが、Gaucheとかのプログラムを書いてるときは
みんなどうしてるのかなーと。
0071デフォルトの名無しさん
2011/05/07(土) 00:46:08.410072デフォルトの名無しさん
2011/05/07(土) 06:07:48.37Emacsだとlisp-indentation
0073デフォルトの名無しさん
2011/05/07(土) 23:49:46.35アマゾンで買おうかどうか迷ってるんだけど。
0074デフォルトの名無しさん
2011/05/08(日) 00:26:51.16karetta.jp(震災の影響でサーバ止まってる)に全文あるけど、買っても絶対に損はしない。というか買っとけw
0075デフォルトの名無しさん
2011/05/08(日) 00:38:07.00前半は Scheme 全般に適用できる基礎知識で、
後半は Gauche 特有の機能の紹介。
全体にやや平易。 入門者向け。
あなたが既に Scheme ユーザーなのなら若干物足りなく感じるかも。
0076デフォルトの名無しさん
2011/05/08(日) 21:24:31.380077デフォルトの名無しさん
2011/05/08(日) 21:29:08.090078デフォルトの名無しさん
2011/05/08(日) 21:54:00.480079デフォルトの名無しさん
2011/05/08(日) 22:24:09.070080デフォルトの名無しさん
2011/05/08(日) 22:26:19.19ttps://www.oreilly.co.jp/ebook/index.html#9784873113487
0081デフォルトの名無しさん
2011/05/09(月) 02:26:54.64LISPに関してはまったくの初心者なので、いったいどいうのはいいのかわからないんだけど、リスト操作の
基本からじっくり解説している感じなのでよかったかな、とは思う。
『 初めての人のためのLISP』なんかは一見面白そうだけど、なんか変なクセがあって敬遠してしまった。
Smalltalkの青木本みたいな感じがして。衒学ですごそうに見えるけど、結局何言ってんだかわからん、
になると危険なような気がして。
今どきのLISP入門はどういう本をどういう順序で読むのがいいのだろう?
0082デフォルトの名無しさん
2011/05/09(月) 02:38:05.77今どきは "scheme 入門" でググれば cons からコンセツ丁寧に解説してくれている文書が
沢山あるんじゃないかな。10 年前に自分が勉強した時もネットに沢山あったよ。
一口に LISP と言っても Common Lisp と Scheme と(他にも色々)あるんだけど、
どっちを勉強したいの?
0083デフォルトの名無しさん
2011/05/09(月) 03:01:25.14もしも貴方が、LISP というおかしな言語があるという事をお聞きになって興味を持たれたのでしたら、
それは多分 Scheme の事ですから、"Scheme 継続" で検索されると良いでしょう。
そうではなくて、LISP という何だかおかしな言語があるという事をお聞きになって興味を持たれたのでしたら、
それは Common Lisp の事ですから、"CL リーダーマクロ" でお探しになると良いと思います。
どちらにせよ、あなたの幸運をお祈り致します。
0084デフォルトの名無しさん
2011/05/09(月) 07:00:05.87コンスセル、quote、シンボル、主要な特殊形式なんかが分かれば、大体問題ないだろうし、
細かい部分は、結局RnRSとかHyperSpec、CLtL2読まなきゃいけないし。
実際の所、コードはすぐ書けるようになると思うけど、Lispで壁に当たるのはむしろその後だよね。
開発環境の整え方とか、日本語の扱いとか、実行ファイルの作り方とか、ライブラリの管理とか、
有益な情報源の在り処とか。入門はやたら検索に掛かるけど、応用例は驚くほど見付からない。
0085デフォルトの名無しさん
2011/05/09(月) 08:18:14.34とりあえず買ったのを最後まで読んでw
0086デフォルトの名無しさん
2011/05/09(月) 10:05:21.04みんながGauche使う理由がなんとなくわかってきた
0087デフォルトの名無しさん
2011/05/09(月) 11:28:46.98#lang XXX
を何にしているか次第なんじゃないの?
複数の言語が実装されている環境なんだから。
0088デフォルトの名無しさん
2011/05/09(月) 12:18:15.41> とりあえず買ったのを最後まで読んでw
なんで小馬鹿にするんですか?
0089デフォルトの名無しさん
2011/05/09(月) 12:27:31.440090デフォルトの名無しさん
2011/05/09(月) 12:51:05.90似非ハッカーが9割。
0091デフォルトの名無しさん
2011/05/09(月) 13:28:07.17#gauche
あればいいのに
0092デフォルトの名無しさん
2011/05/09(月) 15:25:18.61表記上は () と書きますが、これは(nil . nil)と同等なのでしょうか?
それとも () を評価したときに買ってくる単なる nil なのでしょうか?
0093デフォルトの名無しさん
2011/05/09(月) 15:28:07.48(nil . nil)だと(nil)=(())になっちゃうよ
0094デフォルトの名無しさん
2011/05/09(月) 15:58:24.31なるほど、どもです。
分かりやすい解説ありがとうございました。
0095デフォルトの名無しさん
2011/05/09(月) 21:35:18.740096デフォルトの名無しさん
2011/05/09(月) 21:54:42.45LISP界隈は態度だけえらそーな無能古参が多いからいちいち気にする必要はないな。
似非ハッカーが9割。
0097デフォルトの名無しさん
2011/05/09(月) 22:04:50.840098デフォルトの名無しさん
2011/05/09(月) 23:01:45.19俺のコーヒー返せw
その内訳、モニターにかかったカフェイン70%
鼻に抜けた牛乳30%である
#口に物を入れてよんじゃだめってかいてわりとマジデw
0099デフォルトの名無しさん
2011/05/10(火) 09:48:25.08ある本でよく分からない記述があったら別の本でその説明を探すって感じで、
何冊もの本、ウェブ上の教科書をつまみ食いする方が効率がいい。
大抵の理解できない記述は、自分じゃなくて著者が悪いんだと思う方が気が楽。
そして実際に書き方が悪かった、ということの方が多い。
「見下し」というプログラミングテクニックをはやく習得しなさい。
0100デフォルトの名無しさん
2011/05/10(火) 09:56:38.29バカなの?
0101デフォルトの名無しさん
2011/05/10(火) 10:07:10.31LISP界隈は態度だけえらそーな無能古参が多いからいちいち気にする必要はないな。
似非ハッカーが9割。
0102デフォルトの名無しさん
2011/05/10(火) 10:11:40.95まあ煽ってなんぼって考えの翻訳者なんだろうね。
0103デフォルトの名無しさん
2011/05/10(火) 10:19:36.100104デフォルトの名無しさん
2011/05/10(火) 15:50:51.22ってどこかに書いてあったな
0105デフォルトの名無しさん
2011/05/10(火) 15:54:16.850106デフォルトの名無しさん
2011/05/10(火) 17:34:45.98さすがに「だけ」ってほど狭き門でもないだろ、多分w
「Lisp以外の言語では1銭も得られなかっただろう、Lispがあったから俺は今日を生きてるんだ」
レベルの「Lispのおかげで儲かった人」はめったにいないだろうけど……つーかいるのか?
0107デフォルトの名無しさん
2011/05/10(火) 18:47:50.02LISPで何かProductを作ってる人のことは、ほとんど聞いた事がない。
0108デフォルトの名無しさん
2011/05/10(火) 19:21:52.18日本語環境もGUI環境もWEB関連も満足なものがすくないし。
0109デフォルトの名無しさん
2011/05/10(火) 19:23:58.47まあぶっちゃけLispで募集出してもそう集まるもんじゃないだろうし
Lispで募集出すような会社は元々Lisperが多いとしか思えない
仮に使うとしたらWebサービスはランタイム込みのバイナリを配布せずに済むからありかなと思うが
PHPかRubyかPythonの方が集まるっていう
0110デフォルトの名無しさん
2011/05/10(火) 20:59:30.760111デフォルトの名無しさん
2011/05/10(火) 21:11:03.400112デフォルトの名無しさん
2011/05/10(火) 22:10:56.25下のも倒産してるし微妙なのかな?
http://en.wikipedia.org/wiki/Thinking_Machines_Corporation
http://ja.m.wikipedia.org/wiki/シンキングマシンズ
0113デフォルトの名無しさん
2011/05/11(水) 00:20:44.28再帰の多いやつやってみたらLinuxがいきなり落ちたので笑った。
最近のLinuxはWindowsより堅牢じゃないのかよ。
0114デフォルトの名無しさん
2011/05/11(水) 00:22:08.17sh -c 'ulimit -d 'するとどう?
0115デフォルトの名無しさん
2011/05/11(水) 00:28:56.86これだな
http://www.youtube.com/watch?v=ir38tIOQdT0
0116デフォルトの名無しさん
2011/05/11(水) 00:31:23.260117デフォルトの名無しさん
2011/05/11(水) 00:31:25.47S.M.A.R.T.とメモリの確認した方がいいとおもう。
0118デフォルトの名無しさん
2011/05/11(水) 01:44:19.63本来こういう時ってどういうエラーがでるのが正しいのかな?
OSがスタック確保できなくなった、というエラーを返して、Scheme側がエラーを出して終了?
0119デフォルトの名無しさん
2011/05/11(水) 10:52:44.11どう訳すのが適切なんだ?
0120デフォルトの名無しさん
2011/05/11(水) 13:34:46.33Gaucheは自前でスタック管理してて、あふれるとヒープに移すから、無限再帰するようなプログラムは
ヒープを使い尽くすまで走るよ。通常はまずスラッシングでめちゃくちゃ遅くなって、最終的に
ヒープが確保できなくなったらGaucheがabortするんじゃないかな。
Gaucheの組み込みルーチンで、Cで書かれているものの中で再帰した場合 (writeとか) は
Cのスタックを使い切ったところでSEGVして終了。
0121デフォルトの名無しさん
2011/05/11(水) 15:30:47.64とか
reduce
とか
名前を統一してくれないものか
0122デフォルトの名無しさん
2011/05/11(水) 16:29:24.35leftだけある言語や昔ながらの言語はreduceなことが多い気がする
(rreduceとかreduceRightとか命名してる言語もあるが)
0123デフォルトの名無しさん
2011/05/11(水) 18:40:39.86R5RSではなくSRFIで定義されているものでよいのでしょうか?
それともSRFIは拡張ライブラリ的な扱いなのでそしょうか?
0124デフォルトの名無しさん
2011/05/11(水) 18:49:58.81「R5RS準拠」ならR5RSを満たしていればいい。
0125デフォルトの名無しさん
2011/05/11(水) 19:17:12.600126デフォルトの名無しさん
2011/05/12(木) 10:43:08.92落ちたって、具体的には?
スラッシングで反応遅いのとは違いますか?
0127デフォルトの名無しさん
2011/05/12(木) 11:46:13.870128デフォルトの名無しさん
2011/05/12(木) 11:59:58.460129デフォルトの名無しさん
2011/05/12(木) 13:37:31.150130デフォルトの名無しさん
2011/05/12(木) 13:40:00.800131デフォルトの名無しさん
2011/05/12(木) 13:53:18.05Last update Tuesday 24 August 2010 ?
割と最近まで使われてたみたいな気がする
0132デフォルトの名無しさん
2011/05/12(木) 13:55:12.65つまりCHICKENに取り込まれたの?
http://bugs.call-cc.org/browser/release/4/stalin/trunk/QobiScheme.scm?rev=22526
0133デフォルトの名無しさん
2011/05/12(木) 14:01:00.28Stalinは直系だけど開発がほぼ停まってる。
0134デフォルトの名無しさん
2011/05/12(木) 16:20:34.21遅くなって、特にエラーメッセージなしでOSが落ちてPC再起動。
Ubuntu11.04
0135デフォルトの名無しさん
2011/05/12(木) 16:54:28.87たまたまバグがあってそれを踏んでるとかだな多分
0136デフォルトの名無しさん
2011/05/14(土) 00:37:55.53なんで他の配布してる無料アプリが俺妹っぽいイカ娘アイコンなのw
0137デフォルトの名無しさん
2011/05/14(土) 02:31:14.280138デフォルトの名無しさん
2011/05/14(土) 02:41:11.39その割に意味不明なReject。
0139デフォルトの名無しさん
2011/05/14(土) 09:00:51.79追加コンテンツにも30%だまって払えば何でも通りそう
0140デフォルトの名無しさん
2011/05/14(土) 11:09:20.00自分は具体的は利用シーンが思いつかなくて、役立ってません。
面白い言語だと思うのですが。
0141デフォルトの名無しさん
2011/05/14(土) 11:37:20.79会社で利用したいけど、周囲の説得のために事例を知りたい、とかならまだしも、
自分で使う分には、汎用言語なんだから、好きな物作れば良いよ。
みんなはC/C++で(ryみんなはJavaで(ryみんなはPerlで(ryみんなはPythonで(ry
みたいな質問するか? それと一緒だと気付いてくれ。
0142デフォルトの名無しさん
2011/05/14(土) 11:51:26.19というか聞かれる前に何やっているかblogとかに書いてるじゃん
0143デフォルトの名無しさん
2011/05/14(土) 12:07:01.98「女の子と付きあいたいけど、付きあって何したらいいか思いつかない」
なんてことを言ってる奴は絶対にモテないぞ!
Lisp も同じで、好きに使えばいいんだ!
0145デフォルトの名無しさん
2011/05/14(土) 12:20:15.01元々 NetScape の人は JavaScript じゃなくて Scheme を載せる予定だったんだっけ?
何かそんな話を聞いた事がある気がする
0146デフォルトの名無しさん
2011/05/14(土) 12:24:35.28それが思いつかないから質問している人がいるわけで。
こういう特性があるから、こういうもの作ったら、みたいなヒントや雑談すればいいのに。
誰でも思いつく正論わめいてドヤ顔ってどんだけ頭悪いんだ?
0147デフォルトの名無しさん
2011/05/14(土) 12:54:25.41普通は作りたい物があるから作るんだと思うんだけど、
自分の作りたい物も分からない人はまず初心者スレに
行ったら良いと思う
0148デフォルトの名無しさん
2011/05/14(土) 12:55:17.50自分は具体的な利用シーンが思い付かないとか言われても知らんがな。
で、他人からこういうもの作ったら、って言われて、それ作んの? 馬鹿馬鹿しい。
書きたいコードのネタなんて、その辺に転がってるのを自分で見付けてくるもんだろ。
動的型でリストという柔軟なデータ型が基盤だから、プロトタイピングに適する。
また、優れたメタプログラミング機能により、DSLの構築をし易い。
リーダーが含まれるので、S式を使えば設定ファイルなどでパーサを書かずに済む。
言語コアが小さく、構造もシンプルなので、組み込み用途に向く。
こういった特徴があるけど、汎用言語だから大抵のものは書けるし、
FFIやリーダーマクロを使えばアクロバティックなこともできる。
0149デフォルトの名無しさん
2011/05/14(土) 12:58:27.27似非ハッカーが9割。
0150デフォルトの名無しさん
2011/05/14(土) 13:02:37.090151デフォルトの名無しさん
2011/05/14(土) 13:04:47.01助言とかはしてやらないんだなw
0152デフォルトの名無しさん
2011/05/14(土) 13:06:52.570153デフォルトの名無しさん
2011/05/14(土) 13:23:23.84(defun member? (x xs)
(cond ((eq xs nil) nil)
((eq x (car xs)) t)
(t (member? (cdr xs)))))
この場合、次のどちらになるでしょうか
1. 再帰のたびにxsのcdrを新しく生成するので、最悪の場合にはxsの階乗分のメモリを食う
2. cdrへのポインタなり参照を渡すだけなのでxsひとつ分のメモリを食う
0154デフォルトの名無しさん
2011/05/14(土) 13:29:45.86cdrでコピー作っちゃうと、eqとかeq?でアドレス比較できなくて困る。
0155デフォルトの名無しさん
2011/05/14(土) 13:39:40.252で合ってるはず。仮に引数に渡されたリストをコピーするなら、破壊的な関数が存在できない。
0156デフォルトの名無しさん
2011/05/14(土) 13:58:52.01ぐるぐるして終わりだと思う。
0157デフォルトの名無しさん
2011/05/14(土) 14:01:04.76スタージョンの法則の一例に過ぎん
0158デフォルトの名無しさん
2011/05/14(土) 14:10:27.52惑わせてしまってすいません。>>153の時点では
関数に値を渡す際に何が行われるかって問題と、
関数が何を行って何を返すのかって問題がごっちゃになっていたようです
問題がはっきりして助かりました。ありがとうございました
今後そのあたりを意識しつつ勉強していきたいと思います
>>156
末尾再帰だと再帰をループに展開できるんですよね。調べてきます
0159デフォルトの名無しさん
2011/05/14(土) 17:30:01.53>みんなはC/C++で(ryみんなはJavaで(ryみんなはPerlで(ryみんなはPythonで(ry
>みたいな質問するか? それと一緒だと気付いてくれ。
他の言語に対して、同じ質問しないよ。
成果物が沢山出回ってるので、聞かなくても分かるからね。
お前みたいな、ウンチク野郎が多い割には成果物が見えないから、聞いてみたんだ。
お前の言葉で理解したよ。Lispは覚えるだけで偉そうにできる、成果を出す必要が無い、ウンチク言語だって。
これからも、お勉強してウンチク語って満足してください。
ありがとうございました。
0160デフォルトの名無しさん
2011/05/14(土) 17:46:17.68さよなら。
0161デフォルトの名無しさん
2011/05/14(土) 17:50:14.170162デフォルトの名無しさん
2011/05/14(土) 18:38:00.990163デフォルトの名無しさん
2011/05/14(土) 18:39:27.31こういうものって説明が難しいなあ。成果物は出回らないし、
NDAがあるからあまり具体的にも話せない。
別にLispじゃなきゃできないってもんでもない。自分はLispで書くのが
速くて楽ってだけ。C++でも書けるだろうけど書きたくない。
低レベルのところのチューニングのウェイトが高い案件が多いので、
そのへんが直接いじれない言語(処理系)ではできないとは思うが。
0164デフォルトの名無しさん
2011/05/14(土) 18:45:10.480165デフォルトの名無しさん
2011/05/14(土) 18:48:40.39それでも成果物出回ってるよ
0166デフォルトの名無しさん
2011/05/14(土) 18:50:34.15Lisp で「低レベルのところのチューニングのウェイトが高い」とか
ぃってる奴なんだから、そっとしとこうよ。
0167デフォルトの名無しさん
2011/05/14(土) 19:03:30.47CLikiは見た? 「Lisp Wiki」で三番目に出てくる。GitHubやBitbucket、Launchpadで検索しても良い。
Slashdotとか読んでたら、高速httpdのteepeedee2とかのニュースも読んだことあるかもしれない。
この前Googleに買収されたITAはLispのユーザーだし、RedditはかつてLispを使っていた。
ALUのWikiには商業での事例が載っているし、ゲームのクラッシュ・バンディクーとかを作った
Naughty DogはLispを使ったゲーム作りもしている。
この辺はグーグル先生に聞くだけで、簡単に出てくる。
0168デフォルトの名無しさん
2011/05/14(土) 19:08:38.28コンパイラマクロとかdeclaim、declare、the、disassembleとかをご存じない方ですか?
実装依存の機能なら、ACLのLAPとか。
0169デフォルトの名無しさん
2011/05/14(土) 19:24:48.56>>165 他言語でも、出回ってるのはある程度汎用性の高いものでしょ。
これは言語によらないけど、単品ものってお客さんの業務の内部事情に密接に
関わってるんで、「何をするもの」ってあんまり具体的に言いにくいんだよね。
よっぽどぼかしても、近い人だとピンときちゃうことがあるかもしれないから。
ものすごく大雑把に言うと、データを集めて格納して探すもの、ってパターンが多いかなあ。
性能を追っかけるのと、ロバストネスを高めるところがだいたい毎回ポイントになる。
0170デフォルトの名無しさん
2011/05/14(土) 19:39:25.35いや、そんなもんに頼るウェイトが高い案件が多いなら、
そもそも処理系の選定から間違ってるように思うけどな。
まあ君がそれが楽だと言うなら別にいいんだけど。
0171デフォルトの名無しさん
2011/05/14(土) 20:33:19.49CL 派の人たちは割とそういう世界観な気がする
生成される機械語のコードを結構気にしてるよね
0172デフォルトの名無しさん
2011/05/14(土) 21:31:57.22をやりたい"に関して(スレには関係ない)
http://sites.google.com/site/himazu/you-and-your-research
http://d.hatena.ne.jp/kaz_ataka/touch/20081018/1224287687
0173デフォルトの名無しさん
2011/05/16(月) 11:13:06.27そう思わせてlisp本売ってる人もいたけどな
0174デフォルトの名無しさん
2011/05/16(月) 20:04:32.95誰もやってないのかな
0175デフォルトの名無しさん
2011/05/16(月) 21:43:43.460176デフォルトの名無しさん
2011/05/16(月) 23:04:43.440177デフォルトの名無しさん
2011/05/17(火) 03:14:30.35単純な置き換えは無理な気がする
0178デフォルトの名無しさん
2011/05/17(火) 09:47:11.40そこまで使い込んだことないけど、書きにくいことはあるのはしってる。
どんな事例だとできないの?
0179デフォルトの名無しさん
2011/05/17(火) 10:42:11.13PEGならできる、という文法の例がいくつか載っている。
実用的には、PEGだと展開の候補がCFGみたいにパラレルなものじゃなくて、
A = B / C / D は B でダメなら C 、それでもダメなら D という意味なので、
基本的にambiguityがない。
YACCは例えば、
EXP = EXP '*' EXP
EXP = EXP '+' EXP
とか定義しておいて、結合性と優先順位は外付けする、とかできるので、
理論的なPEGの範囲内にはそういうのはない。
0180デフォルトの名無しさん
2011/05/17(火) 11:09:27.40コードいじって例外処理入れるの簡単じゃない
だれかやらないかなあ
0181デフォルトの名無しさん
2011/05/17(火) 11:45:32.91あっ そういえばOn Lispの最後の方に状態マシンを短く書く方法載ってましたね
0182デフォルトの名無しさん
2011/05/17(火) 16:14:15.73setqなどでシンボルに束縛するだけでは変更できてしまうので何か手法があるのかな・・・
0183デフォルトの名無しさん
2011/05/17(火) 16:19:50.03つ defconstant
0184デフォルトの名無しさん
2011/05/17(火) 16:20:40.680185デフォルトの名無しさん
2011/05/17(火) 17:14:21.900186デフォルトの名無しさん
2011/05/17(火) 17:26:26.19lispの勉強をある程度している人向けのR入門書でいい本ないですか?
0187デフォルトの名無しさん
2011/05/17(火) 22:09:14.93LISP界隈は態度だけえらそーな無能古参が多いからいちいち気にする必要はないな。
似非ハッカーが9割。
0189デフォルトの名無しさん
2011/05/18(水) 01:28:11.280190デフォルトの名無しさん
2011/05/18(水) 01:31:17.68のループってのはLISP界隈に限ったことじゃないな
0191デフォルトの名無しさん
2011/05/18(水) 01:33:53.280192デフォルトの名無しさん
2011/05/18(水) 01:34:35.720193デフォルトの名無しさん
2011/05/18(水) 07:42:37.17昔のコンピュータは大文字しか使えなかったんだよ。
0194デフォルトの名無しさん
2011/05/18(水) 07:46:54.590195デフォルトの名無しさん
2011/05/18(水) 10:05:33.04たぶんLISPとLispもそんなところだとおもう。
0196デフォルトの名無しさん
2011/05/18(水) 10:13:22.31扱うのは当たり前だよね。ならL..I.S.Pと表記するのかと。
ハッカーという言葉もさあ、もともと悪い意味だってあったのに、「いい意味だけで使いましょう」
というそれ自体結構ゆがんだ「運動」を真に受けて、ハッカーとは正義の意味にしか使っちゃ
だめだ、わるいのはクラッカーと言え、みたいなキチガイが出てくるからコンピュータ界隈は
一知半解なクセに妙な使命感で言葉狩りする奴が多くて疲れるわ。
こう書くと出現するよ、キチガイさんが(笑)
0197デフォルトの名無しさん
2011/05/18(水) 10:17:36.210198デフォルトの名無しさん
2011/05/18(水) 11:07:54.12俺はキチガイ、まで読んだ。
英語の一般的なルールでは、頭字を連ねただけのもの(FBIとか)は全部大文字、
頭字を連ねたものだけど、それがひとつながりの単語になってるもの(laser)は小文字。
COBOLをシーオービーオーエルと読む奴はいないけど、コンピュータ関係の古い語で
大文字だけで書くものがあるのは、昔はOSでファイル名とかコマンド名とかに大文字しか
使えない奴があった(というかCommon Lispにすらその名残りがあるけど)ためというだけで、
別にたいした意味はない。
0199デフォルトの名無しさん
2011/05/18(水) 11:52:23.330200デフォルトの名無しさん
2011/05/18(水) 12:47:54.75言葉狩りはどこの分野にもある
0201デフォルトの名無しさん
2011/05/18(水) 17:27:57.66とか何とか
0202デフォルトの名無しさん
2011/05/18(水) 17:29:23.980203デフォルトの名無しさん
2011/05/18(水) 17:53:53.74もうGaucheかなにかでバッチスクリプト書いて修正かけた方がいいような気がしてくる
自前スクリプトを作るか既存の設定ファイルいじるかの境界ってどのへんなんだろう
0204デフォルトの名無しさん
2011/05/18(水) 18:03:43.30時間がもったいないとか、損得考えるとキリがないし。
もしくは、自前スクリプトを課題とみて、
他のLisp方言や、思い切って別言語に手を染めてみてはどうだろう。
0205デフォルトの名無しさん
2011/05/18(水) 18:24:27.45Gaucheのモジュールとしてcpan使えたらいいのに
0206デフォルトの名無しさん
2011/05/18(水) 18:47:10.88自分にとって都合のいい方を選べない時点でチョトおかしい。
そんな事いちいち書き込んでいるのは相当おかしい。
0207デフォルトの名無しさん
2011/05/18(水) 18:49:15.74なんか一昔まえの不良みたいだなw
0208デフォルトの名無しさん
2011/05/18(水) 19:22:24.99http://lispers.org/
一般の地球人が驚いて拒絶するのも仕方がない。
0209デフォルトの名無しさん
2011/05/18(水) 21:21:03.130210デフォルトの名無しさん
2011/05/20(金) 03:28:59.680211デフォルトの名無しさん
2011/05/20(金) 04:40:14.75つ i-Robot
0212デフォルトの名無しさん
2011/05/20(金) 14:14:08.900213デフォルトの名無しさん
2011/05/20(金) 19:42:05.040214デフォルトの名無しさん
2011/05/20(金) 23:41:31.25wikipedia みて知ったけど、去年亡くなってたんだな...、合掌。
0215デフォルトの名無しさん
2011/05/23(月) 01:20:26.87自己増植と自滅のバランスをとり続けるのが難しい
0216デフォルトの名無しさん
2011/05/23(月) 21:45:41.970218デフォルトの名無しさん
2011/05/24(火) 12:36:12.40おれおれリスプ処理系
0219デフォルトの名無しさん
2011/05/27(金) 23:31:27.76これです→http://www.shido.info/lisp/pacl2.html#list
あの箱をテキスト文字列として生成するプログラムはありますか?
0220デフォルトの名無しさん
2011/05/29(日) 07:35:36.75やってみた。 gauche でしか動かないだろうけど。
% gosh list2dot.scm | dot -Tpng -o test.png
# ベクタとか他のは シラナイ (´・ω・`)
0221デフォルトの名無しさん
2011/05/29(日) 23:23:33.15label="<car>car|<cdr>cdr"
の方が好みだな。
0222デフォルトの名無しさん
2011/05/30(月) 00:15:08.62ttps://gist.github.com/0b870da449c2ac16f979
0223デフォルトの名無しさん
2011/05/31(火) 00:23:21.05http://inst.eecs.berkeley.edu/~cs61a/su10/
0224デフォルトの名無しさん
2011/05/31(火) 11:07:00.58pythonになったんじゃなかったの?
0225デフォルトの名無しさん
2011/05/31(火) 11:30:52.77それはSICPご本尊のMITでしょ。
著者がいるところだから話題になっただけで、
SICPをテキストに使ってる大学は一杯あるよ。
アップツーデートじゃないだろうけど、
http://mitpress.mit.edu/sicp/adopt-list.html
0226デフォルトの名無しさん
2011/05/31(火) 11:41:06.70という気がしたがいまいち自信がない
0227デフォルトの名無しさん
2011/05/31(火) 11:45:20.330228デフォルトの名無しさん
2011/05/31(火) 11:54:23.81本山は基本的には場所のことであるから御は普通付けないのではないか。
0229デフォルトの名無しさん
2011/05/31(火) 12:15:22.11これだけじゃなんなんで、
http://www.european-lisp-symposium.org/ELS20011.pdf
0230デフォルトの名無しさん
2011/05/31(火) 14:49:57.93普通人物に使う。
MITがSICPの中心だ、ならメッカだ(最近はイスラム教徒からの抗議あり)、
本家だ、総本山だ、とかいうのが適当。
この程度のこともすらすら出てこないとは、ほんとお前らって頭悪いんだな(笑)
0231デフォルトの名無しさん
2011/05/31(火) 16:26:23.83こんなのも。
http://en.wikipedia.org/wiki/ProgramByDesign
http://www.seas.upenn.edu/~eas285/Readings/Pears_SurveyTeachingIntroProgramming.pdf
0232デフォルトの名無しさん
2011/05/31(火) 20:20:07.92自己紹介乙
スレ違いのおバカさん
0233デフォルトの名無しさん
2011/05/31(火) 21:01:23.49schemerからみたらこの記事ってどうなの?
「清潔」なマクロがでてきたとこで読むの止めたんだけど。
0234デフォルトの名無しさん
2011/05/31(火) 21:08:49.430235デフォルトの名無しさん
2011/05/31(火) 21:15:06.250236デフォルトの名無しさん
2011/05/31(火) 21:22:23.510237デフォルトの名無しさん
2011/06/01(水) 14:58:58.26CLはyacc間接的に使うパッケージとかあるんだけど
0238デフォルトの名無しさん
2011/06/02(木) 11:32:17.23放射線計れるようにはならんし。
0239デフォルトの名無しさん
2011/06/02(木) 11:58:43.56メタプログラミングの能力なら、R6RS SchemeとANSI Common Lispはほぼ互角。
構文解析は件の記事とは関係ないけど、SchemeにもCommon Lispにもいっぱいある。
LALRとかLLとかPEGとか再帰下降とかパーサコンビネータとか方式も選り取り見取りで。
0240デフォルトの名無しさん
2011/06/02(木) 20:37:58.11and it already includes the word "Scheme".
0241デフォルトの名無しさん
2011/06/02(木) 20:39:22.430243デフォルトの名無しさん
2011/06/03(金) 00:31:45.41http://clhs.lisp.se/Body/26_glo_r.htm#reader_macro
0244デフォルトの名無しさん
2011/06/03(金) 01:35:33.95そういえば、リーダーマクロとかコンパイラマクロはScheme側の規格にはないね。
Racketとかは確かリーダーいじれたと思うけど、処理系依存でしかない。
表現力は同等でも(これはそう外れてないよね?)、応用例はCLの方が広いか。
0245デフォルトの名無しさん
2011/06/03(金) 15:18:38.440246デフォルトの名無しさん
2011/06/03(金) 15:19:23.29独自仕様つらぬくならとことん貫いてくれよ
0247デフォルトの名無しさん
2011/06/03(金) 15:42:31.850248デフォルトの名無しさん
2011/06/04(土) 22:43:03.38(速度は考慮せずに、javascriptで実装してみたいです)
継続の実装方法が思いつきません
どういう方針を立て、どこから着手すればよいのでしょうか?
それと、スタックベースの実装で参考になるページがあれば教えてください
0249デフォルトの名無しさん
2011/06/04(土) 23:43:08.49例えば
http://d.hatena.ne.jp/cranebird/20100911/1284213187
0250デフォルトの名無しさん
2011/06/05(日) 00:46:01.660251デフォルトの名無しさん
2011/06/05(日) 02:12:07.46SECDR schemeでもいいけどソースは今どこに転がってるのか知らない。
0252デフォルトの名無しさん
2011/06/05(日) 08:16:05.9130年ぐらい前にちょっとかじってたこと思い出した。
0253デフォルトの名無しさん
2011/06/05(日) 20:24:36.24SECDは数年前にちょっと面白い進展あったよ。
"A Rational Deconstruction of Landin's SECD Machine"
"A Functional Correspondence between Evaluators and Abstract Machines"
0254デフォルトの名無しさん
2011/06/07(火) 20:16:45.04そこで練習問題として
Write predicates free? (respectively, bound?) that detemines if an expression contains a free (respectively, bound) instance of a particular variable.
という問題がありました.
特定の変数の独立したインスタンスを含むかどうか判別する述語free?を作れという文章だと思うのですが,どうでしょうか?
また,その場合free?をどう作れば良いのかわかりません.
どなたか方針だけでも
お願いします.
0255デフォルトの名無しさん
2011/06/07(火) 20:31:02.75線形代数のガウスの消去法をやったときに出てくる自由変数についての問題のようにも見えるが
0256デフォルトの名無しさん
2011/06/07(火) 20:57:34.05式をどんどん分解して深くいく分割統治的再帰
関数の返り値は自由変数のリスト
分割統治の合併はappendで
累積変数でbounded variableのリスト
変数を見たら↑に含まれているかどうかチェック
自由変数なら返り値で返す
0257デフォルトの名無しさん
2011/06/07(火) 22:22:48.84すみません。
もう少し詳しくお願いします・・・
理解力がなくて申し訳ありません
0258デフォルトの名無しさん
2011/06/08(水) 00:18:15.920259デフォルトの名無しさん
2011/06/08(水) 00:28:09.86(free? '(define (f x) (+ x y)) 'x)とやるとfalseで
(free? '(define (f x) (+ x y)) 'y)とやるとtrueな感じ?
変数を束縛する可能性のある構文
関数引数(define (f x)...)やλ式(lambda (y) ...)やlet(let ((z 1)...)みたいなのに出会うごとに
束縛されてる式をappendしてく
((x v1) (y v2) (z 1)))みたいなリストができるので
最後に、それに'xが含まれていないかどうかを調べる
0260デフォルトの名無しさん
2011/06/08(水) 00:30:27.20書き込む前にリロードすればよかった
0261デフォルトの名無しさん
2011/06/10(金) 21:54:22.750262デフォルトの名無しさん
2011/06/10(金) 22:36:19.64lynxやw3mで参加できるならもっと増えると思う
0263デフォルトの名無しさん
2011/06/12(日) 10:43:18.51lexical depthなどはどうやって判断すればいいのでしょうか?
0264デフォルトの名無しさん
2011/06/12(日) 10:50:58.10態度がでかくてかなわん
0265デフォルトの名無しさん
2011/06/12(日) 10:52:07.01要するにevalと同じ構造。
0266デフォルトの名無しさん
2011/06/12(日) 12:04:34.01自己紹介乙
0267デフォルトの名無しさん
2011/06/12(日) 16:18:21.19マルチ乙
0268デフォルトの名無しさん
2011/06/12(日) 16:38:49.86目的が違う
Lispは論文を作成するのが目的なんだから
0269デフォルトの名無しさん
2011/06/12(日) 17:49:20.820270デフォルトの名無しさん
2011/06/12(日) 18:13:18.700271デフォルトの名無しさん
2011/06/12(日) 18:29:54.340272デフォルトの名無しさん
2011/06/12(日) 20:39:36.18ゲーデルはS式ではなくて算術の完全性を証明したかったのだ。
0273デフォルトの名無しさん
2011/06/12(日) 20:43:56.78> SchemeとかLispとかいうカッコだらけですごくわかりにくい言語があることは知っているが、
> 最強とか主張する信者がいるらしいのでなるべく関わらないようにしている。
みんなのレベルはいくつかな?
0274デフォルトの名無しさん
2011/06/12(日) 20:55:51.81SICP持ってないからレベル1だな
0275デフォルトの名無しさん
2011/06/12(日) 22:37:20.31説明を読むより慣れろって事なんだろうけど、いきなり lat? とかいう述語が出て来て面食らった。
0276デフォルトの名無しさん
2011/06/12(日) 23:04:45.960277デフォルトの名無しさん
2011/06/12(日) 23:09:20.93今のスコープを探し、なければ、1個遡ってさらに探す
という単純な話だと思う
※の部分でxは一番内側の0、yは一番外側の2に束縛されてる
(let ((x 2) (y 2)) ;←※から見てlexical depth 2
(let ((x 1)) ;←※から見てlexical depth1
(let ((x 0)) ;←※から見てlexical depth0
(+ x y) ;←※
)))
0278デフォルトの名無しさん
2011/06/16(木) 21:45:04.260279デフォルトの名無しさん
2011/06/16(木) 22:26:35.81あんまり Scheme にからめて紹介するのはひかえた方がいいかもしんない。
実際、 Scheme の説明はそれほど無いし。
Scheme を学ぶつもりで買って Scheme とは関係ないところで挫折しちゃう人も少なくないみたい。
0280デフォルトの名無しさん
2011/06/16(木) 22:57:44.70The Little Schemer(Scheme手習い)だそうじゃないか。
TLSとか適当な略称つけてブログで絶賛して流行らせろ。
0281デフォルトの名無しさん
2011/06/16(木) 23:05:41.37元タイトルが SICP ほど長いわけじゃないからそのまま書いてくれ
0282デフォルトの名無しさん
2011/06/16(木) 23:06:27.80世の中の役に立つこと何一つしてないでしょ
あの人
0283デフォルトの名無しさん
2011/06/16(木) 23:12:32.11その何とかさんがハッカーかどうかは別として
0284デフォルトの名無しさん
2011/06/16(木) 23:17:26.52処理系なしで読めるのが素晴らしい
まるで黒板に書かれたコードを読んでいるようだった
0285デフォルトの名無しさん
2011/06/16(木) 23:27:50.76その例えじゃ褒めてるように聞こえないな
0286デフォルトの名無しさん
2011/06/16(木) 23:33:38.64C、Javaパズルブックも良かった。
0287デフォルトの名無しさん
2011/06/17(金) 00:47:41.11ttp://www.amazon.co.jp/exec/obidos/ASIN/4274068536/
0288デフォルトの名無しさん
2011/06/17(金) 00:57:22.51Scheme開眼
0289デフォルトの名無しさん
2011/06/17(金) 01:00:40.71自分は筋トレしながら読んでる
レッグレイズしながら読むのに丁度良いんだよね〜
0290デフォルトの名無しさん
2011/06/17(金) 01:06:44.06Scheme八連(paren)制覇
0291デフォルトの名無しさん
2011/06/17(金) 01:59:51.830292デフォルトの名無しさん
2011/06/17(金) 02:21:08.510293デフォルトの名無しさん
2011/06/17(金) 03:24:54.82わらた
妙にツボにはまっちゃった
0294デフォルトの名無しさん
2011/06/17(金) 07:42:26.32これいいな。
0295デフォルトの名無しさん
2011/06/17(金) 08:46:33.90検索したらTwitterに一件だけあったw
ttp://news.tv-asahi.co.jp/ann/geinou/geinou_news/contents/hot_20110617_020.html
0297デフォルトの名無しさん
2011/06/18(土) 04:07:17.62そんだけ。
0298デフォルトの名無しさん
2011/06/18(土) 09:43:31.45ビルドするのめんどいので誰かバイナリ上げてくれ
0299デフォルトの名無しさん
2011/06/18(土) 10:25:04.760300デフォルトの名無しさん
2011/06/18(土) 10:43:54.940301デフォルトの名無しさん
2011/06/19(日) 19:01:13.91あそこみたいに荒れるコミュは嫌だな。LISPが休止で頭がキレ気味なのか?
0302デフォルトの名無しさん
2011/06/19(日) 19:26:09.14何事も指をくわえて見てるだけにしたほうがいいと思う。
0303デフォルトの名無しさん
2011/06/19(日) 19:44:57.95片方は野心があって王様になりたいという意思が見え隠れしてる。
片方は殺伐な考えにうんざりしている。 それだけだからな。
0304263
2011/06/19(日) 20:01:30.29遅くなりましたが回答ありがとうございます
なんとなくですが理解できました。
また質問なのですが
今Essentials of Programming Languagesという本で勉強しています。
それのExercise2.3.10が分かりません。
本をお持ちの方教えてもらえませんか?
0305デフォルトの名無しさん
2011/06/19(日) 20:01:40.24溜め込んでた鬱憤が、ふとした切っ掛けで噴出して止まらんだけでしょ。
出だしが皮肉感たっぷりだったから、相手が噛み付くのも無理ないし。
正直、お互い様だから放置おすすめ。
0306デフォルトの名無しさん
2011/06/19(日) 20:25:45.04何の話?
>>304
質問の仕方おかしいぞ。せめてどんな問題か書いてくれよ。
0307デフォルトの名無しさん
2011/06/19(日) 20:29:12.04あそこは中心になってる人物が他の言語のコミュニティにすぐに喧嘩を
ふっかける傾向にある。だから、近づかない。scalaを批評したsmalltalker
のブログが荒れた事件+Rubyの教祖様ともややもめたのも最近あったくらい。
ただRubyの教祖とScalaのその人物は大学の先輩後輩みたいだから、子供を
扱う親みたいな感覚なんだろう。
0308デフォルトの名無しさん
2011/06/19(日) 20:33:37.57Linusとか観察することをおすすめする。
0309デフォルトの名無しさん
2011/06/19(日) 20:38:19.84プログラマって観察してると面白いんだけど、性格的にネジが壊れてるほうが
向いてる職業だな。だから、いいのかもしれないが。planet.xxxをみてても
言語によって雰囲気が違う所がまた面白い。
0310デフォルトの名無しさん
2011/06/19(日) 20:40:41.15Lisp の話になったらまた戻ってくるでござる
0311デフォルトの名無しさん
2011/06/19(日) 20:44:26.70Linusは喧嘩しても流されるのはおかしいと思うの。
>>306
Twitter。
0312304
2011/06/19(日) 20:46:15.16すいません分かりづらいですね。
問題は
式を引数にとり、その式の変数参照のlexical addressを表示する手続きlexical-addressを作れ
です(英語で書かれているので訳が微妙に違うかもしれません)
実行例が
(lexical-address '(lambda (a b c)
(if (eq? b c)
((lambda (c)
(cons a c))
a)
b))
(lambda (a b c)
(if (( eq? : 1 0) (b : 0 1) (c : 0 2))
((lambda (c)
((cons : 2 1) (a : 1 0) (c : 0 0)))
(a : 0 0))
(b : 0 1)))
という風になっています。
0313デフォルトの名無しさん
2011/06/19(日) 20:46:30.000314デフォルトの名無しさん
2011/06/19(日) 20:49:56.310315デフォルトの名無しさん
2011/06/19(日) 21:04:29.16http://mitpress.mit.edu/sicp/full-text/sicp/book/node131.html
やっぱり SICP は読まないといけないなあ
いつかきっと...
0316デフォルトの名無しさん
2011/06/19(日) 21:47:15.18thx.twitterか…分からんはずだ。>>313 に同意。
0317デフォルトの名無しさん
2011/06/19(日) 22:02:49.34(foo: x y) => foo は、現在地から相対的に見て、x 番目の深さの lexical frame の、
y 番目のエントリーを参照するという意味で、
(eq?: 1 0) => eq? は、現在地から相対的に見て、1 番目の深さの lexical
frame(つまり global frame)の、0 番目のエンティティを参照という事で、
eq? や cons はプログラムの中に定義が含まれていないので、 global frame に
あるものとして、その中で順番付けしており、
a, b, c は lambda の引数として与えられている値なので、その引数の lexical
address を引いていると、、、
lambda は lexical frame を作る側だから除外、
if はスペシャルフォームだから除外、
という事なのかな。
0318304
2011/06/19(日) 22:18:46.69たぶんそうだと思うのですが
実際にどういう風に手続きを作ればいいのか全く見当もつきません・・・。
リストで与えられているものからどうやってlexical addressを求めたりすればいいのでしょうか・・・?
0319デフォルトの名無しさん
2011/06/19(日) 22:30:33.230. リストを順に辿る
1. lambda というキーワードが出て来たら lexical frame を作成する
2. lambda の引数をリストにまとめて lexical frame に登録する
3. lambda の body を辿る
4. if が出て来たら読み飛ばす
5. 変数が出て来たら、現在の lexical frame の中に同じ名前が無いか探す
6. 現在の lexical frame の中に無かったら、一つ上の frame を探す
7. 変数が見つかったら、そのアドレスを計算する
以下繰り返し
じゃないの?
0320デフォルトの名無しさん
2011/06/19(日) 22:36:13.92こんなもんWEBで無料公開でいいだろ
金儲けばっかり考えやがって
0321デフォルトの名無しさん
2011/06/19(日) 22:48:59.33正直、心の中でガッツポーズだったのに、Macro に負けるとは・・
0322304
2011/06/19(日) 22:55:02.782番のlexical frameを作成するとはどういうことでしょうか?
そしてそれ以降もあまりわかりません・・・。
質問ばかりで申し訳ありません・・・。
0323デフォルトの名無しさん
2011/06/19(日) 23:01:53.68片方は「批評」で、
もう片方は「荒れた」、「もめた」かよ。
あんな駄文をよく「批評」なんて言えるなw
0324デフォルトの名無しさん
2011/06/19(日) 23:07:48.34>>312 をパースすると、最終的に↓こんなリストが内部的に作成されると思われ
(('eq? 'cond)
('a 'b 'c)
('c))
1, 2 は、lexiacal frame のつもりの適当なリストを作成して、そこに lambda の
引数を順番に追加していくという処理
0325デフォルトの名無しさん
2011/06/19(日) 23:22:11.180327デフォルトの名無しさん
2011/06/20(月) 01:36:16.93同意。
誤解に基いた記事に合理的な理由を付けて反論しているのだから、論争だよな。
「複雑さ」の定義が噛み合ってなかった点もある。 でも、それはお互い様の話。
現時点で少数派である Scala 派は過剰なくらい主張しないと釣り合わないってこともあると思う。
0328デフォルトの名無しさん
2011/06/20(月) 01:39:52.43じゃあ、お前はタダで翻訳作業やるのか?
あのテの専門書はほとんど利益でないもんなんだぞ。
0329デフォルトの名無しさん
2011/06/20(月) 01:47:11.15>>313
他所のゴタゴタをここに持ち込むなよ
せめてコードの話をしてくれ
0330277
2011/06/20(月) 02:05:40.46そこと、相互再起が理解できるとプログラミング言語作れるよ
schemeはフレームがデータ構造の、ただの相互再起関数だから
condが特殊形式じゃなかったりと、その本が
どういう風に構築してるのかはわからないけど
lexical frameがどう使われるかが理解できたらすっきりするかも
SICPの処理系の場合、フレームは
(('c 値))
(('a 値)('b 値)('c 値))
トップレベル環境)な感じになって
carでたどりながら最初に見つかったシンボルが今の値になる
0331324
2011/06/20(月) 02:11:33.01正しくは cons でした...
あと、イチイチ quote する必要も無かったですね...
0332デフォルトの名無しさん
2011/06/21(火) 19:09:37.99できたけど自分でやるつもりだったら見ないでね
http://codepad.org/l7anqWik
0333デフォルトの名無しさん
2011/06/21(火) 19:35:24.87http://codepad.org/arrsvMiU
0334デフォルトの名無しさん
2011/06/21(火) 20:42:07.72技術書翻訳って、部数出ない代わりに単価が高いんだから、
それなりに儲かるんじゃないの?
0335デフォルトの名無しさん
2011/06/21(火) 20:43:13.810336デフォルトの名無しさん
2011/06/21(火) 21:42:07.52単価が高いたって、専門書でも2万円を越えるようなものはそう多くない。
5000円かそこらだ。
5000円で人を雇ったらせいぜいひとりを半日くらい使えるくらいじゃね?
本を書くのに何日かかって、編集やら組版やら流通やらに何人がかかわると思ってんだよ。
0337デフォルトの名無しさん
2011/06/21(火) 21:42:45.18eq?やconsが事前登録なのと、リスト途中のlambdaの扱いが気になるな。
自分ならこう組むかな。(Gaucheべったりのコードだけど)
(use gauche.sequence)
(define (lexical-address expr)
(define global (list '()))
(define (sym->addr sym env)
(let1 idx (or (find-index (pa$ memq sym) env)
(begin
(set-car! global (append (car global) (list sym)))
(- (length env) 1)))
(list sym ': idx (find-index (pa$ eq? sym) (list-ref env idx)))))
(let loop ((env global) (expr expr))
(cond ((symbol? expr) (sym->addr expr env))
((not (pair? expr)) expr)
((eq? (car expr) 'lambda)
`(lambda ,(cadr expr) ,@(map (pa$ loop (cons (cadr expr) env)) (cddr expr))))
((eq? (car expr) 'if)
`(if ,@(map (pa$ loop env) (cdr expr))))
(else
(map (pa$ loop env) expr)))))
0338デフォルトの名無しさん
2011/06/21(火) 22:17:26.300339デフォルトの名無しさん
2011/06/22(水) 02:08:48.55数人ぐらいでできるでしょ
誰も一冊で食おうなんて思わないしw
0340デフォルトの名無しさん
2011/06/22(水) 02:16:14.390341デフォルトの名無しさん
2011/06/22(水) 03:31:33.030342デフォルトの名無しさん
2011/06/22(水) 08:32:02.86自分でやればいいじゃない
0343デフォルトの名無しさん
2011/06/22(水) 10:25:51.07多くの人が買う見込みがあるなら多く刷って一冊の価格を下げられるし
一冊の価格が下がれば買ってみようと思う人が増える
The Seasoned Schemerの日本語版が小説やビジネス書を抜いて
ベストセラーランキングに食い込むような世の中なら
コンピューター書も少しは安くなるさ
0344デフォルトの名無しさん
2011/06/22(水) 10:28:41.73第一義は原著者の言いたいことが分かることだから、
矛盾のない訳であるだけで十分であり、上手くなくとも、直訳でも構わないはず
翻訳本の価値は読者が(自分で訳したり、機械翻訳するために打ち込んだりするような)
翻訳する労力と費やすはずだった時間を翻訳者が担ってくれることにある
それ以上の事、例えば日本語として自然な訳であるのは翻訳者のサービスだ
だから、出版物より上手く訳せるならお前が訳して売ってくれというのは
翻訳本に求めるものを完全に間違えている
0345デフォルトの名無しさん
2011/06/22(水) 13:04:29.30そんな話は誰もしてねーし、矛盾がなくても日本語として不自然すぎて
読みづらく時間のかかる訳は品質が悪いとしか言えんわ。
0346デフォルトの名無しさん
2011/06/22(水) 13:12:07.57上手くない直訳でもないよりはずっと良いですが、
訳の質が悪いと原著者の言いたいことも分かりにくくなります。
下記の例では「軍人が手ぶらで帰った」事がわからないと
なぜ軍人が絶句したのかわかりません。
原文:Richard Hamming "You and Your Research"
http://magic.aladdin.cs.cmu.edu/wp-uploads/hamming.pdf
Some military person came to me and demanded some answers by Friday.
Well, I had already dedicated my computing resources to reducing data on the fly for a group of scientists;
I was knee deep in short, small, important problems.
This military person wanted me to solve his problem by the end of the day on Friday.
I said, "No, I'll give it to you Monday. I can work on it over the weekend. I'm not going to do it now."
He goes down to my boss, Schelkunoff, and Schelkunoff says, "You must run this for him; he's got to have it by Friday."
I tell him, "Why do I?"; he says, "You have to."
I said, "Fine, Sergei, but you're sitting in your office Friday afternoon catching the late bus home to watch as this fellow walks out that door."
I gave the military person the answers late Friday afternoon.
I then went to Schelkunoff's office and sat down;
as the man goes out I say, "You see Schelkunoff, this fellow has nothing under his arm; but I gave him the answers."
On Monday morning Schelkunoff called him up and said, "Did you come in to work over the weekend?"
I could hear, as it were, a pause as the fellow ran through his mind of what was going to happen;
but he knew he would have had to sign in, and he'd better not say he had when he hadn't, so he said he hadn't.
Ever after that Schelkunoff said, "You set your deadlines; you can change them."
0347デフォルトの名無しさん
2011/06/22(水) 13:12:36.25http://sites.google.com/site/himazu/you-and-your-research
ある金曜日、軍人が来て、金曜日までに、ある問題の答えを出すように要請しました。
私は既に、ある研究チームの必要に応じてすぐにデータ処理をできるように自分の計算機資源を割り当てていました。
私はいくつもの小さな重要な問題にどっぷり浸かっていたのです。
その軍人は金曜日中に問題の答えを出すよう要請しました。
「それはできません。月曜日にお渡しします。週末にやります。今はできません。」
その軍人は上司のシェルクノフのところに行きました。そして、シェルクノフは私に言いました。
「この問題に取り組んでください。上司命令です。金曜日中に完了させてください。」
私は言いました。「なぜですか。」 シェルクノフは言いました。「命令です。」
「いいでしょう。でも、その軍人が帰るのを見届けるまで残っていてください。遅いバスに乗ることになるでしょうが。」
私は金曜日午後遅くに答えを出して軍人に渡しました。
シェルクノフの部屋に行って、軍人の帰り際に、私は言いました。
「部長、私は脅されていません。でも、ちゃんと答えを出しましたよ。」
月曜日の朝、シェルクノフは、その軍人に電話で聞きました。
「週末にオフィスに来来て仕事をしてらっしゃいましたか。」
軍人が言葉を詰まらせているのが聞こえました。
どのように話が展開するか考えていたのでしょう。
嘘をついたらより窮地に追い込まれると思い、軍人は正直に仕事をしていないと言いました。
それ以来、シェルクノフは「締め切りは自分で決めてください。そして自分で変更してかまいません」と言うようになりました。
0348デフォルトの名無しさん
2011/06/22(水) 13:13:21.37リチャード・ハミング「あなたとあなたの研究」前半
http://d.hatena.ne.jp/lionfan/20080726
リチャード・ハミング「あなたとあなたの研究」後半
http://d.hatena.ne.jp/lionfan/20080727
さて大物の軍人が私のところに来て、ある問題の答えを金曜日までに出すよう要求しました。
ですが私は既に科学者のグループのために急いでデータを圧縮するのにコンピュータの資源を費やしていました。
私は短期の細かく重要な問題でいっぱいいっぱいでした。
この軍人は金曜日の終わりまでに解くことを私に望んだのです。
私は「すみません、月曜日にしてください。週末に解きますよ。今は無理です」と言いました。
彼は私の上司、シェルクノフの所に行き、シェルクノフは「彼のためにやってやれ。金曜日までに必要なんだ」と言いました。
「私がですか?」と私は言い、「君がやるんだ」とシェルクノフは答えました。
私は言いました。「わかりました、セルゲイ。でも金曜日の午後はいつもより遅いバスで帰ることにして、
この部屋に座ってそいつがドアから出るときを見ておいてくださいよ」と。
私は金曜日の午後遅く、軍人に答えを渡しました。
次に私はシェルクノフの部屋に行って座りました。その男が帰るときに私は言いました。
「ねえシェルクノフ、あいつ、小脇になにも抱えてなかったですよね。でも私はあいつに答えを渡したんです」
月曜日の朝、シェルクノフは彼を呼び出して言いました。「この週末、仕事に来たかね?」
私は彼が一瞬、絶句して、事態を理解するさまを聞いていました。
しかし彼は建物に入るにはサインが必要だということもわかっていたので、
正直に認めたほうがマシだと考え、「行きませんでした」と言いました。
それ以降、シェルクノフは「締切は君が決めなさい。変更も君に任せる」と言うようになりました。
0349デフォルトの名無しさん
2011/06/22(水) 13:32:53.81http://kamome.2ch.net/english/
0350304
2011/06/22(水) 14:50:33.19回答ありがとうございます!!
答えもらってるのに失礼なのですが
自分はまだcond,set!,letを学んでいません。
動作は何となく理解できたのですが、これらを使わないで作るにはどうすればいいの>>333でしょうか?
0352デフォルトの名無しさん
2011/06/22(水) 15:21:48.170353デフォルトの名無しさん
2011/06/22(水) 15:23:56.120354デフォルトの名無しさん
2011/06/22(水) 15:33:40.870355デフォルトの名無しさん
2011/06/22(水) 15:38:13.28英単語→日本語なら形態素なんてあんま関係ないし
それぐらいの希望を持ったっていいだろう
0356デフォルトの名無しさん
2011/06/22(水) 15:41:44.150357デフォルトの名無しさん
2011/06/22(水) 15:45:30.64日本語→韓国語みたいに単語の置き換えでできるレベルの言語以外は100年後も
相変わらず意味不明珍文ジェネレーターのままだと思うよ。
0358デフォルトの名無しさん
2011/06/22(水) 16:21:34.530359デフォルトの名無しさん
2011/06/22(水) 16:35:43.90> 翻訳本の価値は訳の質じゃない
> 第一義は原著者の言いたいことが分かることだから、
> 矛盾のない訳であるだけで十分であり、上手くなくとも、直訳でも構わないはず
ところが、直訳で用を成す場合ってのはめったにないんだな。
訳語一つとっても内容を理解していないとダメになる。
そういうのは構文で致命的なミスをしていると見ていいよ。
学術書の翻訳でダメなのは英語の問題というより、そのジャンルを舐めているとしか思えんね。
0360デフォルトの名無しさん
2011/06/22(水) 16:38:57.240361デフォルトの名無しさん
2011/06/22(水) 16:40:23.95英語なんか出来るわけない罠w
0362デフォルトの名無しさん
2011/06/22(水) 17:19:55.97cond, letはifとlambdaで等価なものがかけるよ
set!部分はなんか適当に再帰書けばできると思うよ
0363デフォルトの名無しさん
2011/06/22(水) 17:30:56.770364デフォルトの名無しさん
2011/06/22(水) 17:58:27.63専用スレへどうぞ。
【SICP】計算機プログラムの構造と解釈 Part2
http://hibari.2ch.net/test/read.cgi/tech/1203096230/
0365デフォルトの名無しさん
2011/06/22(水) 22:09:34.30バカでかいけどDTMからサンプリング定理、DSPまで入っている名著があるんだけど、
こいつの日本語版は訳者まえがき(後書きだったかもしれん)に興味深い話があったな。
翻訳作業を始めた当初は、数人の翻訳者が直訳派と意訳派に分かれていたけれど、
作業が進むにつれ、出版に耐えうる直訳は意訳に近づき、著者の意図をあますとこなく表現している意訳は直訳に近づいていったとか。
まあ、自分の得意分野の話題だったら英語でも日本語でも大丈夫だよな。
逆にニュース記事とかはさっぱりだ。
0366デフォルトの名無しさん
2011/06/22(水) 22:14:09.32> 作業が進むにつれ、出版に耐えうる直訳は意訳に近づき、著者の意図をあますとこなく表現している意訳は直訳に近づいていったとか。
何が言いたいのこれ?
著者の意味をあますところなく表現する訳は出版には耐ええないのか、両者は限りなく近づいていくと
いうことか?
0367デフォルトの名無しさん
2011/06/22(水) 22:42:51.600368デフォルトの名無しさん
2011/06/22(水) 22:56:00.64ぜんぜん理解できないのが分かったりする(笑)
0369デフォルトの名無しさん
2011/06/22(水) 23:00:47.17大人になったら居なくなったな
0370デフォルトの名無しさん
2011/06/23(木) 01:44:12.530371デフォルトの名無しさん
2011/06/23(木) 04:22:54.930372デフォルトの名無しさん
2011/06/23(木) 08:45:43.86いや、英語が出来て当たり前な場所にいるだけ
0373デフォルトの名無しさん
2011/06/23(木) 10:31:43.640375デフォルトの名無しさん
2011/06/24(金) 14:56:36.49つ RABBIT: A Compiler for SCHEME
ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf
0376デフォルトの名無しさん
2011/06/24(金) 18:27:42.23(let ((a x)(b y)(z c)...)body)は((lambda (a b c...)body)x y z...)と等価
ttp://codepad.org/0tm5NSwq
set!なしで書こうとしたものの、
eq?が出現したタイミングでフレーム作らないといけない感じなんで
set!かcall/ccかcpsかと考えたら本末転倒になったので諦めた
0377デフォルトの名無しさん
2011/06/24(金) 18:55:09.11擬似的なものはできるが
0378デフォルトの名無しさん
2011/06/25(土) 08:01:37.75こんな場所でしか自慢する所がないんだよ、察してやれ。
0379デフォルトの名無しさん
2011/06/25(土) 08:43:14.700380304
2011/06/26(日) 17:41:16.26ではcondとletだけ使わないで書くとどうなるのでしょうか?
自分で書いてみてもうまく動作しません。
どなたかお願いします。
0381デフォルトの名無しさん
2011/06/26(日) 23:29:58.82あとは>>375を読め
0382デフォルトの名無しさん
2011/06/27(月) 01:01:40.14SICPを元にしたMITの講義ならpodcastで見れるが、
lisp/schemeプログラミングの現場(のようなもの)を動画として見てみたい
それと、Anarchy Golfのlisp/scheme解説も見てみたい
(たとえば、"hello, world!" の出力をたった22バイトで成し遂げるってどういうテクニックを使っているんだろうか
http://golf.shinh.org/p.rb?hello+world)
0383デフォルトの名無しさん
2011/06/27(月) 01:18:55.69(print "hello,world!")
夢を壊したらゴメン...
0384デフォルトの名無しさん
2011/06/27(月) 04:30:40.54やonjoさんの→let実装ビデオなら転がってたと思うが。
0385デフォルトの名無しさん
2011/06/27(月) 04:32:21.910387304
2011/06/27(月) 10:38:24.09ありがとうございます
ところで今更なのですが
>>333のコードで
lexical-addressの中でdefine recがありますが
recを外でdefineするとエラーになります
なぜこのように書かなければならないのでしょうか?
0388デフォルトの名無しさん
2011/06/27(月) 10:52:27.720389304
2011/06/27(月) 11:32:47.05よければ説明をお願いします・・・。
0390デフォルトの名無しさん
2011/06/27(月) 11:48:36.990391デフォルトの名無しさん
2011/06/28(火) 02:37:33.51途中で止めてコード修正して、継続実行できるのがすごいんだとかが書籍にとかインタビュー記事にあるけど、実際どうやんのかとかさっぱりわからん
0392デフォルトの名無しさん
2011/06/28(火) 10:48:54.420393デフォルトの名無しさん
2011/06/28(火) 11:13:37.680394デフォルトの名無しさん
2011/06/28(火) 21:00:04.430395デフォルトの名無しさん
2011/06/28(火) 21:01:52.290396デフォルトの名無しさん
2011/06/28(火) 22:10:17.570397デフォルトの名無しさん
2011/07/11(月) 17:00:48.690398デフォルトの名無しさん
2011/07/12(火) 23:37:56.03javascript流行ってるのかな
中間表現としてはいいよね
0399デフォルトの名無しさん
2011/07/13(水) 00:15:51.04JavaScript は Lisp in C's clothing と言うくらいで、
Lisp と相性が良いし、言語の素性も良いからね
ウェブアプリの分野は JavaScript の独占状態だし
0400デフォルトの名無しさん
2011/07/13(水) 01:34:02.68いつの間にか文法をC風にすることになっていて驚いたって逸話があるくらいだからな。
0401デフォルトの名無しさん
2011/07/13(水) 12:01:37.430402デフォルトの名無しさん
2011/07/14(木) 06:17:58.790403デフォルトの名無しさん
2011/07/14(木) 11:10:08.25Emacs使い以外には用のない本。
Elispは古典的なLispだけど、今や少数派なので。
0404デフォルトの名無しさん
2011/07/15(金) 00:38:25.57全くそんな事はない。
あくまでもElispを題材にとっているだけであって基本の説明をしている。
0405デフォルトの名無しさん
2011/07/15(金) 01:22:53.96続編として、マクロ遊びもキボンヌ
0406デフォルトの名無しさん
2011/07/15(金) 01:35:04.320407デフォルトの名無しさん
2011/07/15(金) 07:19:50.85がんばれば溺れることはないだろうがとても苦しそうだ。
0408デフォルトの名無しさん
2011/07/15(金) 14:42:36.670409デフォルトの名無しさん
2011/07/15(金) 17:11:17.120410デフォルトの名無しさん
2011/07/15(金) 22:07:12.13つーか、「リスト遊び −Emacsで学ぶLispの世界−」ってタイトルを見て、なぜ高階関数とか出てくんのかね。
ちなみに薄い120Pで1200円。
0411デフォルトの名無しさん
2011/07/15(金) 22:19:01.330412デフォルトの名無しさん
2011/07/15(金) 22:56:02.51> 高階関数を封じてlispを使うのは両腕を縛って泳ぐようなもの
なんて大上段なレス返すのがおかしいだろ、って話よ。
その先は他の本格的な本読んでくれってスタンスだろあの本は。
文句の付け方がおかしい。
0413デフォルトの名無しさん
2011/07/15(金) 23:18:35.650414デフォルトの名無しさん
2011/07/16(土) 01:16:24.78後書きによれば、それは「次に読むべき本」だって
0415デフォルトの名無しさん
2011/07/16(土) 01:58:55.23リスト遊び → リスト操作 → 高階関数
Lisp の世界 → S 式 → マクロ
っておもたよ
でも、どっちもないよ
ただ、lambda は敢えて入れてない様に見えたので
対象読者のレベルを考えて入れなかったんだろうね
だから続編キボンヌ
本の内容はとても良いので、読んでない人は買って
読んだらいいと思います
0416デフォルトの名無しさん
2011/07/16(土) 02:42:43.99http://elliottslaughter.com/2011/06/blackthorn-3d
0417デフォルトの名無しさん
2011/07/16(土) 07:28:19.500418デフォルトの名無しさん
2011/07/16(土) 10:55:05.590419デフォルトの名無しさん
2011/07/16(土) 11:52:02.010420デフォルトの名無しさん
2011/07/16(土) 14:34:35.690421デフォルトの名無しさん
2011/07/16(土) 22:18:08.27良い本だよ、楽しい。
0422デフォルトの名無しさん
2011/07/16(土) 22:57:42.74Scheme修行
http://www.amazon.co.jp/dp/4274068536/
0423デフォルトの名無しさん
2011/07/17(日) 00:55:02.870424デフォルトの名無しさん
2011/07/19(火) 14:32:58.46あんま違わないと思うんだけどなあ
0425デフォルトの名無しさん
2011/07/19(火) 18:26:35.70手続き型言語同士の別言語くらいには違うと思うぞ
0426デフォルトの名無しさん
2011/07/19(火) 23:08:03.690427デフォルトの名無しさん
2011/07/20(水) 01:27:12.43モナドひとつとってもLispとHaskellで全然使用感違うし、Lispで関数合成多用とかしないでしょ?
Lispは「コンビネータも使える」だけど、Haskellは「コンビネータを使うのが普通」って感じだし。
0428デフォルトの名無しさん
2011/07/22(金) 22:08:55.52環境変数のPATHの設定値がGaucheのパスだけになって
もともとの設定値がみんな消えてしまった。
トップページをよく見たらその問題について書いてあったけど後の祭り。
せめてインストーラのダウンロードページに書いといてほしい。
「対応策を考えています」ってなってるけど半年経っても修正されてない。
0429デフォルトの名無しさん
2011/07/23(土) 02:46:31.26(use bind)って書くだけじゃだめなの?
0430デフォルトの名無しさん
2011/07/23(土) 06:48:26.37そんな苦労してまで Windows を使わなくても良いと思うんだが...
確かお金も掛かるんだよね?
0431デフォルトの名無しさん
2011/07/23(土) 07:31:44.400432デフォルトの名無しさん
2011/07/23(土) 10:39:19.78PATHが消えたこと以外は問題なく使えてるし。
「PATHの内容が1000文字に近い場合」に問題が発生するということらしいけど
大抵の人はそこまで長くなくて問題も出ず、対応も鈍いのかも。
うちのPCは前に何か実験したときに無駄に長くなって放置してたはず。
本家に突撃すべきってのはその通りですね。
0433デフォルトの名無しさん
2011/07/23(土) 10:45:17.79それはともかく1000文字なら超える人がいてもおかしくない数字だね
0434デフォルトの名無しさん
2011/07/23(土) 11:05:30.88Gauche のプロジェクトとしてできる対策は NSIS を使わない (じゃあ何を使う?) か、
NSIS へ改良案を出すということになるけど、 NSIS の改良を Gauche の開発者に求めるのは筋合いだろ。
0435デフォルトの名無しさん
2011/07/23(土) 12:16:06.43問題点の周知について改善すべき状態ではあるね
0436デフォルトの名無しさん
2011/07/23(土) 15:12:20.08Gauche がお金掛かる訳無いじゃん...
オープンソースでフリーソフトウェアなのに
0437デフォルトの名無しさん
2011/07/23(土) 17:40:38.31別の処理系使うか仮想LinuxをWindows内で動かすか、
Macに鞍替えしたほうが早いと思う。残念ながら。
0438デフォルトの名無しさん
2011/07/23(土) 17:51:45.66「とりあえずschemeを使いたい」という目的は十分果たせているけど。
0439デフォルトの名無しさん
2011/07/23(土) 18:40:30.000440437
2011/07/23(土) 19:11:52.53すまん、とりあえず問題ないならいいんだけど。
正直、おれはWindowsでSchemeしたい人がどういう層か分かってないんだ。
schemeを使ってWebアプリ書いたりデータベース作ったり、
もしたいなら、Linuxの方が断然楽だよ。
Windowsにこだわるより、Linux環境を作ってそっちも
一緒に勉強したほうがいいんじゃないか、という意味で書いた。
いやおれは自分のことしか考えてないな、すまんかった。
0441デフォルトの名無しさん
2011/07/23(土) 19:30:16.00そうなんだよな、winはwinの流儀のプログラム書くツール使う方が遙かに楽だし。
なもんで俺はwin機でunix流の事するときはvmに載せたos使ってる
シームレス表示使うとめちゃ便利だし
0442デフォルトの名無しさん
2011/07/23(土) 19:31:39.120443デフォルトの名無しさん
2011/07/23(土) 19:40:37.050444デフォルトの名無しさん
2011/07/23(土) 19:48:26.400445デフォルトの名無しさん
2011/07/23(土) 20:15:39.86フィートを提供してないサイトの巡回を自動化するだとか、
ファイルの種類ごとにフォルダ分けしたりだとか、そういうの。
0446デフォルトの名無しさん
2011/07/23(土) 21:50:37.31Macは日本語ファイルの扱いがgitやsvn使ってるときにむかつく以外は良くできたunixだな
0447デフォルトの名無しさん
2011/07/24(日) 07:54:14.33むかつくを再現してみたいので、どんな設定にしているのか教えて下さい。
0448デフォルトの名無しさん
2011/07/24(日) 09:28:01.41「か」と濁点のような複数コードポイントで表現する正規形)だって話じゃないの?
文字集合としては合成という機能があるなら合成で表現できる文字に別の符号を割り当てるのは美しくない(=NFDだけがある文字集合の方が良かった)ようにも思えるが
既存の文字集合の上位集合にするには「が」みたいなものも必要だったし、現にNFC(「が」を単独コードポイントで表現する正規形)なシステムの方が多いからな……Canonical XMLもNFCだったはず
0449デフォルトの名無しさん
2011/07/24(日) 12:50:55.540450デフォルトの名無しさん
2011/07/24(日) 18:43:11.17>>448が技術的背景を描いてくれてるので、具体例をあげると
svnやgitのリポジトリに"debug担当者の作業手順.txt"をコミットしても問題起きないが
"デバッグ担当者の作業手順.txt"をコミットすると"デバッグ”が濁点との合成文字でファイルシステムに書かれるためにgitやsvnからは別ファイルにみえちまうってこと
日本語いれんなってのはまぁ解決方法の一つだが、チーム全体でそういう統一ができなかったりする。
0451デフォルトの名無しさん
2011/07/25(月) 02:23:14.34常に少し古いの使ってるってみかけた
どのぐらい古いの使うのがお勧めなんだろ
5.1.1が今のだけど4.**とか?
0452デフォルトの名無しさん
2011/07/25(月) 11:38:13.47HFSやCocoaのことしか考えられてないからねえ。
ブラウザのファイル操作、USBサムドライブ、ネットワークヴォリューム、
あちこちで問題起こしてる。NFDもNFCも積極的にはやらないのが、
外界とのやりとりでのトラブル防止に一番いい。
要するに相手の事情に寛容になって受け入れるってことなんだけど。
ファイル名だけでもopen/creat/symlink/mkfifo/socketのwrapperを
Lisp/Schemeの処理系で使うだけでは済まずに、
アーカイバなどのアプリケーション層まで影響する。
0453デフォルトの名無しさん
2011/07/25(月) 20:13:31.44次の版から WiX へ切り替えるそうだ。
http://practical-scheme.net/chaton/gauche/a/2011/07/25#entry-4e2d459e-175af
0454デフォルトの名無しさん
2011/07/25(月) 20:22:46.210455デフォルトの名無しさん
2011/07/25(月) 20:31:42.68C++とschemeの混合してみたいなら
試してみては
http://www.suri.cs.okayama-u.ac.jp/servlets/APPLICATION.rkt
0456デフォルトの名無しさん
2011/07/25(月) 20:47:20.90(define (b) (c))
(define (c) (a))
全然ダメですな
template<typename AType>
AType a()
{
return b();
}
template<typename BType>
BType b()
{
return c();
}
template<typename CType>
CType c()
{
return a();
}
0457デフォルトの名無しさん
2011/07/25(月) 21:04:09.28TCOされるからスタックも溢れない。
C++の方はどういう結果になるの?
0458デフォルトの名無しさん
2011/07/26(火) 10:23:29.740459デフォルトの名無しさん
2011/07/26(火) 14:56:14.24(define (a-int) (b-int))
...
型指定すればそれっぽくなるけど
int a_int()
{
return b_int();
}
int b_int()
{
return c_int();
}
...
0460デフォルトの名無しさん
2011/07/26(火) 21:05:24.54ぼっちで閉じた環境で居ると他のファイルシステムを気にしませんもんね。
勉強になるぅ...。
0461デフォルトの名無しさん
2011/07/26(火) 21:36:29.19http://trac.sacrideo.us/wg/attachment/wiki/WikiStart/r7rs-draft-3.pdf
0462デフォルトの名無しさん
2011/07/26(火) 23:22:54.47完全なローカルファイルでそうなるのは単に困惑するだけだから公開されない限り大したことないが
ドメイン名でそんなこと許したら目視で判別できないフィッシングサイト作り放題だから、RFC 3491やRFC 3987の正規化はローカルに適用する気も起きない特別仕様
基本的にファイルシステムやVCSのリポジトリでは正規化せずに、もっと上で(例えば検索する前などに)正規化を施した方が融通が利く
より多くの開発者に普段から正規化を意識するように要求する方法でもあるが
0463デフォルトの名無しさん
2011/07/26(火) 23:27:01.02ありがとう、色々試してみる
ここから日記
ソースを落として読んだらmake-instanceなんてのは存在しなかった
で代わりに
(use bind coops cplusplus-object)
(bind-file* "hoge.h")
と頭に書いて(new <Hoge>)でインスタンス生成(delete hoge)で削除
make-instanceに捕まってた自分が馬鹿だった
一つ問題があってhoge.hで他のヘッダ(<iostream>とか)をインクルードするとコンパイルが通らない
山括弧で囲むのがだめなのかもしれない
わけがわからないよ
0464デフォルトの名無しさん
2011/08/01(月) 22:36:39.34・REPL の便利さが理解出来る
・末尾再帰や相互再帰のプログラムを奇麗に手早く書ける様になる
・副作用を意識したプログラムが書ける様になる
・関数型言語のイディオムが身に付く
・プログラム言語を扱うプログラムを書ける様になる
・プログラム処理系を書く為の知識が身に付く
・ラムダ算法への理解が深まる
・人生の楽しみが増える
・その他
0465デフォルトの名無しさん
2011/08/01(月) 22:53:22.05触ればひとまずは使えるようになる簡便な言語であること。
0466デフォルトの名無しさん
2011/08/01(月) 22:57:54.970467デフォルトの名無しさん
2011/08/01(月) 23:28:21.28単純なので処理系のバグが少ない
覚えることが少なく、プログラミングの本質を学べる
0468デフォルトの名無しさん
2011/08/02(火) 01:01:42.99手続き型で仕事をするプログラマにとっても参考になる、かもしれないよ
すっきり書けているように見えて効率が悪い原因とか
0469デフォルトの名無しさん
2011/08/02(火) 02:19:54.06メタプログラミングの力に触れることができる。
現在のLisp特有の利点っていったらこれくらいだと思う。
他は別の関数型言語でも体験できるんじゃないかと。
他の言語も色々なアプローチをしてるみたいだから将来は分からないけど、
メタプログラミングの分野において、現時点で一番実績があって実用的なのは間違いなくLisp。
0470デフォルトの名無しさん
2011/08/02(火) 08:11:01.81関数が1st classである事とREPLだと思う
この2つはLipsの特徴だし。
REPL無しのLispとか泣けるし、関数が1st classじゃなかったらもっと泣ける。
0471デフォルトの名無しさん
2011/08/02(火) 10:17:03.52=>10
最近こういう使い方ばっかり
0472デフォルトの名無しさん
2011/08/02(火) 23:40:33.94(defun eGFR (cr age)
(* 194 (expt cr -1.094) (expt age -0.287)))
0473デフォルトの名無しさん
2011/08/03(水) 00:47:13.28MDAですとかテキトーな事いって括弧は隠してる。
0474デフォルトの名無しさん
2011/08/04(木) 19:12:47.120475デフォルトの名無しさん
2011/08/04(木) 21:20:48.16ttp://trac.clozure.com/ccl/wiki/ReleaseNotes/1.7
ttp://cl.cddddr.org/index.cgi?Clozure%20CL#H-hprg7871
注意点:
- FASLとイメージのバージョンが上がったので、要再コンパイル・ダンプ
- さようならDarwin/ppc
- ASDF-Installさんお疲れっした
0476デフォルトの名無しさん
2011/08/06(土) 01:09:55.88寛容かもな。それぞれの言語のコミュニティって 色があるよね。
0477デフォルトの名無しさん
2011/08/06(土) 13:29:51.56日本の学校でもSICPが教科書指定になったりする?
Schemeは良い教科書いっぱいあるのに、日本ではSICPの情報が
目立って多い気がする。しかもチョット崇拝されて。
学校でコンピュータ勉強しなかったので、みんなどこでSICPと出会うか不思議。
0478デフォルトの名無しさん
2011/08/06(土) 13:39:09.530479デフォルトの名無しさん
2011/08/06(土) 13:47:54.780480デフォルトの名無しさん
2011/08/06(土) 13:51:21.49既存の処理系の特定の処理を高速化しただけで
論文になるレベルだろ
0481デフォルトの名無しさん
2011/08/06(土) 14:01:20.38・SICP は Scheme の教科書という括りではなく、プログラミングの教科書として評価が高い
・評価が高いから色んな所で話題になる
・日本で特別評価が高いという訳ではなく、海外でも評価は高い
・プログラミング言語に興味を持っていれば大学の専攻に関係無く自然と出会うもの
最近も HN で話題になってた
http://news.ycombinator.com/item?id=2846799
http://news.ycombinator.com/item?id=2843715
0482デフォルトの名無しさん
2011/08/06(土) 14:25:34.96クリエイティブなんとかで自由に翻訳していいのに
0483デフォルトの名無しさん
2011/08/06(土) 14:27:49.17【SICP】計算機プログラムの構造と解釈 Part2
http://hibari.2ch.net/test/read.cgi/tech/1203096230/
0484デフォルトの名無しさん
2011/08/06(土) 15:09:44.70丁寧な解答ありがとう!
上のリンクやってない人以外と多くてワラタ。
そこにもあったけど自分はBerkeleyの授業(OCW)で読んだ。
SICPも良かったけど講義してたBrian Harveyの方に惹かれたので、
この人のsimply schemeも日本でもう少し人気でないかな〜って思うけど
こっちはschemeよりだから難しいかなぁ。残念だ。
0485デフォルトの名無しさん
2011/08/06(土) 15:39:10.46九大にいった友人は、一年時はschemeの演習だったって聞いたな。
SICPが教科書指定だったかは聞いてないけども
ちなみに、俺の居た大学はprologで、教授が作った気合いの入った資料だった。
聞いた話によれば、prologを海外から輸入したスゴい教授が居るらしい。
0486デフォルトの名無しさん
2011/08/06(土) 18:54:21.240487デフォルトの名無しさん
2011/08/06(土) 21:18:41.38どちらか一方でいいからいいかげん学習しろよ
0488デフォルトの名無しさん
2011/08/06(土) 21:33:11.080489デフォルトの名無しさん
2011/08/06(土) 21:46:30.570490デフォルトの名無しさん
2011/08/06(土) 21:50:58.18和田さんはキーボードの人でしょ
0491デフォルトの名無しさん
2011/08/06(土) 22:54:18.890492デフォルトの名無しさん
2011/08/07(日) 01:09:08.10他人に興味がないだけな気もする。
自分の世界あってナンボみたいな印象だ。
社会的なLisperには怒られるでしょうが。
0493デフォルトの名無しさん
2011/08/07(日) 01:17:36.69思想のぶつけ合いをしている暇があったら手を動かす
ってな感じなんじゃないかな
あれいいなー から つくったよ までの期間が短い
というか
0494デフォルトの名無しさん
2011/08/07(日) 02:13:44.17> 和田が英語を学習しろ
和田は英語は得意だよ。若い頃の海外論文の紹介とかの翻訳はマトモというか実に読みやすい。
SICPの訳は恐らくは機械翻訳で粗訳してから手を入れるという方法で手抜きしようとして、手入れの際の見落としがあるんだと思う。
それか東大退官後にどっかの大学で教えてゼミとかで学生に順番に読ませて学生に訳させたかのいずれかだな。
しかしまあ、名著をああいう翻訳で出すのは学問に対する良心を疑う、という批判には賛成だな。
自分でちゃんと訳す時間が自分になければ最初から訳者を引き受けなければいいんだからね。
0495デフォルトの名無しさん
2011/08/07(日) 02:55:08.490496デフォルトの名無しさん
2011/08/07(日) 03:09:29.010497デフォルトの名無しさん
2011/08/07(日) 03:11:50.29あんな文体で翻訳するソフトないから
0498デフォルトの名無しさん
2011/08/07(日) 05:12:11.44賛否あるのは分かるが
0499デフォルトの名無しさん
2011/08/07(日) 06:36:05.66prologを海外から輸入したらスゴイのか
俺もなんか輸入するかな
0500デフォルトの名無しさん
2011/08/07(日) 07:14:00.56海のものとも山のものとも知れない時期に有用性を理解して
早期に導入したんだとしたら、それはある程度評価されてもいいんじゃない
その人が輸入した時代のprologをとりまく状況は知らんけど
0501デフォルトの名無しさん
2011/08/07(日) 08:57:42.75いたらそのほうが凄いわw
他人に訳させて監修者がろくに監修の仕事してないだろ、とか言われたものといえばK&Rだが、
なんかそういう「世間の悪評」って奴を適当に拾ってきて継ぎ接ぎしただけで、全く一文もSICPを
読んでないのが丸分かりで馬鹿を晒してる >>494 が哀れを通り越して滑稽。
0502デフォルトの名無しさん
2011/08/07(日) 13:02:50.71回収になった本あったな
0503デフォルトの名無しさん
2011/08/07(日) 13:16:07.81http://hibari.2ch.net/test/read.cgi/tech/1203096230/
続けるならそろそろこっちに行こうな。
0504デフォルトの名無しさん
2011/08/07(日) 13:36:19.340505デフォルトの名無しさん
2011/08/07(日) 13:38:05.55これな
アインシュタイン その生涯と宇宙 下
http://www.amazon.co.jp/dp/4270006501/
0506デフォルトの名無しさん
2011/08/07(日) 13:41:46.05これか
普段から糞訳本読みなれてるうちらからしたら
わりとありふれたレベルの訳だな
0507デフォルトの名無しさん
2011/08/07(日) 13:44:19.79雑談ならこっちで
雑談スレ 4
http://hibari.2ch.net/test/read.cgi/tech/1302223650/
0508デフォルトの名無しさん
2011/08/07(日) 20:21:42.05包茎の車がありふれてるとかどんな本読んでるんだ…
そうぞうすらできん
0509デフォルトの名無しさん
2011/08/07(日) 20:25:59.140510デフォルトの名無しさん
2011/08/07(日) 20:26:10.250511デフォルトの名無しさん
2011/08/07(日) 22:09:40.340512デフォルトの名無しさん
2011/08/07(日) 22:12:15.410513デフォルトの名無しさん
2011/08/07(日) 22:30:28.71ccl って地味に凄いよね
自分はもうしばらくまとまった量の Lisp のコードは書いてないけど、
Lisp でアプリケーションを作る事になったらこれを使うわ
0514デフォルトの名無しさん
2011/08/07(日) 22:36:57.44先輩にCommon Lispやるならsbcl使えって言われたんだけど、cclってそんなにいいの?
どっかのブログの人も推してたし
0515デフォルトの名無しさん
2011/08/07(日) 22:50:36.99SBCL も良いと思いますよ
歴史的な経緯や目指している方向が大分違うと思うので、自分は CCL の方が好きです
0516デフォルトの名無しさん
2011/08/07(日) 23:09:26.54github を検索してみると Gauche を使ったものって意外にあるよね。
0517デフォルトの名無しさん
2011/08/07(日) 23:14:57.810518デフォルトの名無しさん
2011/08/07(日) 23:25:33.10doc ディレクトリに行って make htmls すること。
0519デフォルトの名無しさん
2011/08/07(日) 23:27:54.15SICP とかの本の演習問題を解いたのとかがたくさんあって、注目すべきプロジェクトとか探すのめんどい。
0520デフォルトの名無しさん
2011/08/07(日) 23:31:34.33商売でやってるから、SBCLとかだと後回しにされがちな所も、
きっちりサポートされてたりするのが良いよね。ARMとかだと現状多分これ一択。
>>514
最適化とか型推論とかの性能はSBCLのが基本的に良いよ。
流石に国防総省に金もらってやってたCMUCLの派生だけあって。
人気も断トツだから、ライブラリからのサポートも厚いし。
どっかのブログの人が推してたのは安定性の観点からだけど、
SBCLも別に不安定って訳じゃないし、CCLも1.5とか凄いバギーだったよ。
SBCLのWindowsスレッドサポートも進展してきたし、今割と熱いかも。
0521デフォルトの名無しさん
2011/08/07(日) 23:49:00.48まあLisp界隈は狭いしな……
0522デフォルトの名無しさん
2011/08/08(月) 00:57:18.320523デフォルトの名無しさん
2011/08/08(月) 01:04:37.22凄いな
0524デフォルトの名無しさん
2011/08/08(月) 01:16:49.32商用処理系とSBCLとCCLくらい。
0525デフォルトの名無しさん
2011/08/08(月) 07:40:59.10知らんかった。
地味にありがたい情報だわ。
0526デフォルトの名無しさん
2011/08/08(月) 12:40:18.01うっかりやっちゃうことだってよくあることじゃん?
最適化かけたら問題が顕在化するとかありがちじゃん?
言語処理系としては仕様に従ってたらいい話なんだけど、
言語ユーザーの誰も彼もが仕様の詳細を把握してるわけでもないし、
ちょっとしたミスを許容するナイーブな処理系の方が結果的に安定して動くことはありえる。
これはちゃんと仕様を習得するのにかかるコストだとか、
必要なパフォーマンスとかとのトレードオフになってくる話で、
どちらがより安定しているかという客観的な指標で言うのは難しいと思うんだよな。
0527デフォルトの名無しさん
2011/08/08(月) 12:55:32.520528デフォルトの名無しさん
2011/08/08(月) 13:05:52.70Racket常用してる自分は少数派なのか
0529デフォルトの名無しさん
2011/08/08(月) 13:31:00.10mz系もウィンドウズ使ってる人にはいるだろ。
俺はSTk。Demo-htmlのダサさは癖になる。
0530デフォルトの名無しさん
2011/08/08(月) 13:31:15.99それ安定性って言わんと思う。処理系には何の責任もない。
強いて言えば、どっちかというと堅牢性(robustness)に類する話だと思う。
規格に反する書き方すると警告出してくれたりすると親切で良いかもね。
この手の性質について定量化するのは難しいという部分には同意。
さらに、一般的に言われる不安定さっていうのは、イメージによるものが大きいし。
>>528
Racket便利じゃん。
0531デフォルトの名無しさん
2011/08/08(月) 13:35:02.590532デフォルトの名無しさん
2011/08/08(月) 15:51:28.16> やっぱりGaucheなのか
> Racket常用してる自分は少数派なのか
俺もPLT Scheme時代からずっと使ってるRachet派だ
0533526
2011/08/09(火) 01:07:53.94処理系の責任とは思ってないよ。 むしろ、「それって処理系以外の要因で結果的にそう見えてるだけじゃね?」という意味合いのつもり。 先に述べたように、言語処理系としては仕様に従ってたらいい話だとは思う。
ちゃんと規格通りに言語を使えている人とそうでない人にとって見え方が違うということで、使い方によって印象に差が出ることもあるという例で出しただけ。
安定性の話に限らず、速さとかでも総合的なベンチマークの結果がよくても弱点を踏んだとたんに遅くなることもあったりするし、必要なのは特性を把握するってことなんだよなぁ。 万能はあり得ないんだから。
だから >>528 が少数派であろうが多数派であろうがその選択肢が用途にマッチしていると考えたのならそれでいいんじゃないのか。
折角だからどういう用途で使ってるかも書いて欲しいね。 その上で各処理系のメリット・デメリットの情報を共有するのが建設的だろう。
0534デフォルトの名無しさん
2011/08/09(火) 02:40:09.13>>530は「安定性という言葉の認識がおかしいよ」って言ってるんであって、
別にそれ以上でもそれ以下でもない。書いてある通り。
あと、言いたいことは理解できるんだが、割と致命的に文章がおかしい。
言葉の選び方から文章の前後の繋がり方まで色々。もうちょっと推敲して欲しい。
0535デフォルトの名無しさん
2011/08/09(火) 03:12:50.410536526
2011/08/09(火) 12:49:08.54「コンピューターおばあちゃん♪コンピューターおばあちゃん♪」
と口ずさんでいたら、いつのまにか
「ハンバーガーおばあちゃん♪ハンバーガーおばあちゃん♪」
と言っていた。
な… 何を言ってるのか わからねーと思うが おれも何をされたのかわからなかった…
頭がどうにかなりそうだった…
催眠術だとか超スピードだとかそんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を味わったぜ…
0537526
2011/08/09(火) 12:49:52.35上の書き込みは忘れてください。
0538デフォルトの名無しさん
2011/08/09(火) 12:59:27.090539デフォルトの名無しさん
2011/08/09(火) 14:16:52.500540デフォルトの名無しさん
2011/08/10(水) 05:53:42.010541デフォルトの名無しさん
2011/08/10(水) 23:35:53.080542デフォルトの名無しさん
2011/08/11(木) 00:03:43.150543デフォルトの名無しさん
2011/08/11(木) 02:23:48.81パンピーにはちょっとハイセンスすぎるんだよな…
0544デフォルトの名無しさん
2011/08/11(木) 11:35:17.19日本人だからしゃーない黄色人種だし
そっちの方がレアだろ
0545デフォルトの名無しさん
2011/08/11(木) 14:33:29.76引き際が肝心
0546デフォルトの名無しさん
2011/08/14(日) 00:52:32.05Scheme修行、売れてるのかな?
0547デフォルトの名無しさん
2011/08/14(日) 01:12:33.520548デフォルトの名無しさん
2011/08/14(日) 01:28:17.276月だとそれもあんまりないよな
いちおう有隣堂には、たくさん置いてあったが、、、、
0549デフォルトの名無しさん
2011/08/14(日) 16:41:48.05手習いと修行ってそんなに良い本なの?
0550デフォルトの名無しさん
2011/08/14(日) 17:11:26.96中身見てみろ
0551デフォルトの名無しさん
2011/08/15(月) 00:27:56.98SICPはschemeの為の学習本じゃないって事は知っておいた方がいい。
0552デフォルトの名無しさん
2011/08/15(月) 08:38:58.09やっぱ時代はHaskellだな。
0553デフォルトの名無しさん
2011/08/16(火) 18:01:14.320554デフォルトの名無しさん
2011/08/16(火) 18:07:12.100555デフォルトの名無しさん
2011/08/16(火) 18:22:45.400556デフォルトの名無しさん
2011/08/16(火) 18:57:29.850557デフォルトの名無しさん
2011/08/16(火) 19:30:36.830558デフォルトの名無しさん
2011/08/16(火) 19:40:42.80同じ内容を理解できてれば何だって良いよ。一定の評価を得てるから、
初学者に教科書を紹介するときにしばしば引き合いに出されるだけ。
0559デフォルトの名無しさん
2011/08/16(火) 19:57:06.120560デフォルトの名無しさん
2011/08/16(火) 20:20:37.10まともな教育機関なら、普通にやることだと思うけど。独学でも途中で通過する所だし。
同じ内容って表現が悪かったかな。アプローチはそれぞれ違うだろうから。
根底にある考え方とか、そういったものの話ね。
0561デフォルトの名無しさん
2011/08/16(火) 20:24:54.41ないよ
読まなくてもいいよ
0562デフォルトの名無しさん
2011/08/16(火) 20:28:37.81翻訳本ってあんなもんじゃないの?
0563デフォルトの名無しさん
2011/08/16(火) 20:32:43.33そういった諸々知らなくてやってけるなら読まなくてもいいだろうけど。
Cのプログラマとかだって普通に知ってる(使ってる)内容だよ?
0564デフォルトの名無しさん
2011/08/16(火) 20:36:51.050565デフォルトの名無しさん
2011/08/16(火) 21:25:11.95プログラムの初心者や、自己流でやってきた学生に、短期間でそれなりの基礎を
身につけさせるって目的で書かれた。Schemeを使ってるのもそれが理由。
言語そのものの説明が簡単に済むから。
既にある程度経験があったり、時間をかけたり、独学するんだったら、他に良い本もあるだろうさ。
0566デフォルトの名無しさん
2011/08/16(火) 22:26:49.46そのうち身に付けてしまうような人ほど喜々として読んで
「面白かった」と言うけれど、
この本をペンと計算機片手に読む必要のある人ほど
言い訳したり何だりでマトモに読まず
「クソ本だ」と言っているところ
まあこの本に限ったハナシでもないんだけど
0567デフォルトの名無しさん
2011/08/16(火) 23:09:59.24自分も、プログラミングは好きだけど、他の事は沢山さぼってるからなあ
0568デフォルトの名無しさん
2011/08/16(火) 23:11:41.12pgr
0569デフォルトの名無しさん
2011/08/16(火) 23:12:41.16ポール・グレアム?
0570デフォルトの名無しさん
2011/08/17(水) 02:49:16.19さっさとくたばれ。
0571デフォルトの名無しさん
2011/08/17(水) 03:04:12.060572デフォルトの名無しさん
2011/08/17(水) 04:06:42.04eq?という使い方の分からないものが出てきました
こういう時のために関数の一覧とかないんですか
0573デフォルトの名無しさん
2011/08/17(水) 06:10:40.080574デフォルトの名無しさん
2011/08/17(水) 12:33:10.95それともこの本は私が読むには早いんでしょうか?
0575デフォルトの名無しさん
2011/08/17(水) 12:49:00.390576デフォルトの名無しさん
2011/08/17(水) 12:50:55.22分かってる人はそれをふまえて発現しないとな。俺がまだ初心者の頃、先輩はこう言ってくれた。
半万年ROMれ
0577デフォルトの名無しさん
2011/08/17(水) 18:16:40.76経済関連のニュースで、 Yahho Shoppong のベースになった view-web は
パウログラハムさんが Lips で描いたと知って興味をもったんですが、
文系には Lips は難しいみたいです。 もうちょっと独自に勉強してまだ来ます。
0578デフォルトの名無しさん
2011/08/17(水) 18:48:04.200579デフォルトの名無しさん
2011/08/17(水) 20:56:19.31俺も文系だけど、Lisp が好きだし、Lisp の処理系の実装を読むのも大好きだよ
個人的には、Sheme 手習いは初心者の一冊目の本としては向いてないと思う
ウェブ上の解説とかで良いので、Scheme の基礎的な所を理解してから
再挑戦されると良いと思います
0580デフォルトの名無しさん
2011/08/17(水) 22:58:04.880581デフォルトの名無しさん
2011/08/17(水) 23:13:30.610582デフォルトの名無しさん
2011/08/17(水) 23:18:55.550584デフォルトの名無しさん
2011/08/17(水) 23:37:59.04教養としてのプログラミングならこっちを勧めたい
0585デフォルトの名無しさん
2011/08/17(水) 23:40:19.570586デフォルトの名無しさん
2011/08/17(水) 23:41:43.220587デフォルトの名無しさん
2011/08/17(水) 23:46:36.110588デフォルトの名無しさん
2011/08/17(水) 23:59:40.180589デフォルトの名無しさん
2011/08/18(木) 00:04:37.920590デフォルトの名無しさん
2011/08/18(木) 00:23:14.75via web は c++ で置き換えられちゃったみたいね...
理系出身でも、ちゃんと計算機科学を専攻していないと、lisp ナニソレ
フルクサイいんたーぷりたゲンゴでしょ状態の人が自分の周りには多かった。
いやいや今どきの lisp はコンパイラの方が主流だよって教えてあげたら、
ソモソモいんたーぷりたが何なのかすらきちんと分かってない感じだったわ。
0591デフォルトの名無しさん
2011/08/18(木) 00:27:29.32Gauche=インタープリターが主流じゃないの?
0592デフォルトの名無しさん
2011/08/18(木) 00:30:20.160593デフォルトの名無しさん
2011/08/18(木) 00:51:49.080594デフォルトの名無しさん
2011/08/18(木) 00:53:36.49しかも clisp 以外はネイティブコンパイラばかり
0595SCHEME餃子 ◆8X2XSCHEME
2011/08/18(木) 00:54:37.24と、煽りにノってみるテスト。
0596デフォルトの名無しさん
2011/08/18(木) 02:40:06.880597572
2011/08/18(木) 04:57:38.08eq?は右を見れば理解しました
0598デフォルトの名無しさん
2011/08/18(木) 05:10:42.36ttp://cl.cddddr.org/index.cgi?%bd%e8%cd%fd%b7%cf
ある程度ユーザが付いてるのは全部コンパイラ持ってる。
というか、Common Lispは規格によりコンパイラ必須。
0599デフォルトの名無しさん
2011/08/18(木) 07:39:03.14なんで餃子?
0600デフォルトの名無しさん
2011/08/18(木) 07:52:34.320601デフォルトの名無しさん
2011/08/19(金) 00:24:14.470602デフォルトの名無しさん
2011/08/19(金) 00:31:19.53どうしても書籍が良いの?
ウェブなら沢山あるけど
http://www.shido.info/lisp/idx_scm.html
http://www.geocities.jp/m_hiroi/func/scheme.html
http://www-ui.is.s.u-tokyo.ac.jp/~hara2001/scheme/
0603デフォルトの名無しさん
2011/08/19(金) 06:29:47.58ありがとん。
電車の中で読むのに、プリントアウトすんの面倒だな〜と思って。
0604デフォルトの名無しさん
2011/08/19(金) 10:31:06.08プログラミングGaushe 立ち読み版
ipadは横幅あっていいんだよ
0605SCHEME餃子 ◆8X2XSCHEME
2011/08/21(日) 19:57:48.46「プログラミング Gauche」は Scheme の初心者に適した内容になっていてオススメできるかな。
Gauche の名前を使ってはいても前半は Scheme 全般に通用するし。
逆に、 Scheme をある程度知っている人が Gauche 特有のことを学ぼうと思うとかなりヌルい本だと感じるかも。
それから、「プログラミング言語 SCHEME」もオススメ。
単に順番に言語機能を紹介するのではなく、 Scheme の理念をきちんと解説しているところに好感が持てた。
Lisp は関数型と分類されることもあるし、リスト操作に注目されることが多いけど、
実際の強みはそういった基本機能の上に様々なパラダイムを構築できることにあることがよくわかった。
これらの後に「Scheme 手習い」「Scheme修行」で演習というのが初心者向けにはいいコースなんじゃないかと思う。
SICP は名著だけど、 Scheme を学ぶために最初に読むような本ではないので注意。
いきなり読み始めても早々に脱落するケースが多いのでそれで Scheme を諦めるともったいない。
0606デフォルトの名無しさん
2011/08/21(日) 20:29:42.54ポチっとこ。
0607デフォルトの名無しさん
2011/08/21(日) 20:53:36.880608SCHEME餃子 ◆8X2XSCHEME
2011/08/21(日) 23:26:34.64Scheme というか Lisp 系言語も世間で言われているほどに難しいわけでは全然ないと思う。
でも、異質であるのは事実だから、機能だけ紹介されても使いどころがわからんのよ。
「プログラミング言語 SCHEME」では、その機能がどうしてそうあるのか背景となる理念と同時に基本となる使用例を押さえている点で初心者に読んで欲しい本だと思った。
俺自信はある程度 Scheme に慣れてから読んだのでもしかすると初心者には難しいと感じられるのかもしれん。
まぁ >>605 はあくまで感想レベルの話だから他のレビューも見て総合的に判断してくれ。
社会人にとっては高い本でもないからとりあえず買っといて難しいと思ったら後回しにするっつーのもアリだろうし。
0609デフォルトの名無しさん
2011/08/22(月) 01:37:18.44うろ覚えだけど内容は、
京大情報学科一学年後期から一年間SICP使ってるのは、初学者にアルゴリズムやパラダイムを教えるのに、
実際動かしながら勉強することが出来た上で余分な言語知識を教える必要が少ないから
というとになっていた。
(本にはschemeの使い方はあまり書いてないので逐次必要なときに教えてる)
http://winnie.kuis.kyoto-u.ac.jp/~okuno/Lecture/10/IntroAlgDs/
0610SCHEME餃子 ◆8X2XSCHEME
2011/08/22(月) 02:27:26.75基本要素が少ないことを活かしてるわけだな。 事前に言語そのものの教育をする必要がそれほどないと。
つっても Scheme のサブセットで済ましてるから、 SICP をまともに理解したとしても Scheme を充分に理解できてるわけではない。
だから SICP で Scheme を学ぶのは向いてないと思うわけだ。
R6RS の範囲に踏み込むと割と複雑になってくるし。 特にマクロまわりが。
マクロを話題に上げればフェイズの話になるし、フェイズとなると library もからんでくる。
俺としては R6RS はキッチリしてて好きなんだけど、これをちゃんと説明して理解させるのは難しいと思うわ。
R6RS を前提とした書籍っていうのは (日本語では) 多分一個も無いんじゃないかと思う。
ただ、「プログラミング言語 SCHEME」ではフェイズの問題には触れない範囲とは言え R6RS のマクロシステムの解説をしているので、目を通しておくといいと思った。
(厳密には R6RS のマクロシステムではなく、 R6RS の元になった提案。 そのマクロシステムの提案者が著者自身であることからもわかる通り、著者は Scheme 界の大御所であるので記述がそれなりに信頼できるというのもある。)
0611609
2011/08/22(月) 03:54:51.74KCL開発者って覚えてて、いつも混同してしまう、、、
0612デフォルトの名無しさん
2011/08/22(月) 06:50:37.96何か引っ掛かってたけど「The Scheme Programming Language」の邦訳か。スッキリした。
0613デフォルトの名無しさん
2011/08/22(月) 09:09:36.43しかも奥乃先生も付いてるんでしょ? 鬼に金棒、じゃなくて、鬼が二人w
0615デフォルトの名無しさん
2011/08/22(月) 17:34:16.840616デフォルトの名無しさん
2011/08/22(月) 20:20:08.27横のものを縦にしてみた。
0617デフォルトの名無しさん
2011/08/23(火) 01:34:09.420618SCHEME餃子 ◆8X2XSCHEME
2011/08/23(火) 12:52:16.17誰か応募した?
0619デフォルトの名無しさん
2011/08/23(火) 12:57:01.870620SCHEME餃子 ◆8X2XSCHEME
2011/08/23(火) 13:02:21.19応募要項読んで。
http://shibuya.lisp-users.org/2011/08/22/tt7/
0621デフォルトの名無しさん
2011/08/23(火) 14:56:29.65参加したいな〜と思って参加登録探したけど見つからない
0622デフォルトの名無しさん
2011/08/23(火) 15:10:55.920623デフォルトの名無しさん
2011/08/24(水) 03:20:22.750624デフォルトの名無しさん
2011/08/24(水) 07:42:37.79奥乃先生は授業でリリカルLispを紹介したらしい。
なんか凄いな。
学生が撮った写真がTwitterにあがってる。
ttp://twitpic.com/357uj4
ttp://twitpic.com/357veq
0625デフォルトの名無しさん
2011/08/24(水) 10:53:23.380626デフォルトの名無しさん
2011/08/25(木) 11:53:55.98「Scheme:マクロ:CommonLispとの比較:意味論」で言われてるような問題って解消されてるの?
(問題点:R5RSでは<expression>≡<datum>って解釈の実装を許すような意味論定義がされてる)
0627デフォルトの名無しさん
2011/08/25(木) 12:42:35.22全文を読んでないから断言はできないけど。
まあ、R7RSのsmall languageってsyntax-case入ってないし。
0628デフォルトの名無しさん
2011/08/25(木) 13:00:19.23> That is, according to Scheme's grammar, every <expression> is also a <datum> (see section 7.1.2).
って書いてるな。これはR5RSの6.3.2にもある文。まあ、7.1.2の方は例によって指摘通りなんだけど。
ちなみに、>>626の「<expression>≡<datum>」ってtypoだよね? それだと逆になっちゃう。
0629デフォルトの名無しさん
2011/08/25(木) 17:30:38.380630デフォルトの名無しさん
2011/08/25(木) 17:45:00.910631デフォルトの名無しさん
2011/08/25(木) 18:01:44.29ごめん。英語苦手なんで、できればもう少し詳しくお願いしたい。
具体的にはどう解釈する余地があるの?
0632デフォルトの名無しさん
2011/08/25(木) 18:25:50.92古典的なSchemerにとっては解決する必要のない問題。
ダングリングエルス問題に似てる。
0633デフォルトの名無しさん
2011/08/25(木) 19:16:54.17多少穴があろうが、syntax-caseとかexplicit renamingが使えればどうでも良い訳で。
0634デフォルトの名無しさん
2011/08/26(金) 11:36:50.380635デフォルトの名無しさん
2011/08/27(土) 11:32:53.85答:R6RSから俺にとってどうでもよくなる危険性が
あたかもしれない
0636デフォルトの名無しさん
2011/08/27(土) 14:42:05.051.リストの長さを計算する関数をfoldを使わずに定義するものとしてこう書いてみました
(define (length2 lis)
(if (null? lis)
0
(+ 1 (length2 (cdr lis)))))
通常のリストならただしく動くのですが、ただ、'(2 . 3) のようなドット対がくると動きません
2. リスト中から条件を満たす要素だけを抜き出してリストを返す関数が動きません
(define (filter2 pred lis)
(cond
([(null? lis) '()]
[(pred (car lis)) (cons (car lis) (filter2 pred (cdr lis)))]
[else (filter2 pred (cdr lis))])))
> (filter2 even? '(1 2 3 4 5))
*** ERROR: invalid application: (#f ())
それぞれどう修正すればいいのでしょうか
0637デフォルトの名無しさん
2011/08/27(土) 15:11:58.47condの括弧が大杉なんじゃね
0638デフォルトの名無しさん
2011/08/27(土) 17:19:59.54(cond [...] [...] [...])
ぱっと見勘違いしちゃうよな
やっぱり括弧の種類増やしたら駄目だ、全部(...)で統一しようぜ(w
0639デフォルトの名無しさん
2011/08/27(土) 17:41:37.31+ begin 1 2 3 end => 6
うむ。
0640デフォルトの名無しさん
2011/08/27(土) 20:46:50.240641デフォルトの名無しさん
2011/08/27(土) 21:30:28.360642デフォルトの名無しさん
2011/08/27(土) 21:50:54.860644デフォルトの名無しさん
2011/08/28(日) 16:48:24.87BASICみたいに対応付けが簡単な仕組みに変えればいいんだよ
+begin 1 2 3 end+ => 6
あ、あれ?これって○MLじゃ
0645デフォルトの名無しさん
2011/08/28(日) 17:16:32.980646デフォルトの名無しさん
2011/08/28(日) 17:20:14.93begin-endはAlgolだ
0647デフォルトの名無しさん
2011/08/28(日) 17:38:44.42あれはcondの文法を少し勘違いしてただけで、一度覚えたらああいう間違いはしない。
S式disりたいなら式単位で編集できるようになってから出直してこいよ。
0648デフォルトの名無しさん
2011/08/28(日) 17:41:09.07ありがとうございました。
0649デフォルトの名無しさん
2011/08/28(日) 17:42:55.350650デフォルトの名無しさん
2011/08/28(日) 17:54:31.890651デフォルトの名無しさん
2011/08/28(日) 23:21:20.82(cond ([...] [...] [...]))
(cond [...] [...] [...])
このふたつは勘違いしやすいが
(cond ((...)(...)(...)))
(cond (...)(...)(...))
これなら分かりやすいだろ? 純粋なS式なら問題ないんだよ
0652デフォルトの名無しさん
2011/08/29(月) 02:19:51.48どういう根拠で[ ]の方が間違いやすいのかまるで理解できない。
それじゃあ単に[ ]が嫌いなだけにしか見えないよ。
>>638もそうだけど、具体的な理由も出さずに否定されても。
見栄えの問題を、新たな記号の導入で解決するのはスマートじゃない、
みたいな主張なら、聞いたことがあるし、理解もできるけど。
0653デフォルトの名無しさん
2011/08/29(月) 02:44:47.39糖衣構文って。
0654デフォルトの名無しさん
2011/08/29(月) 06:54:15.33って明確に文法的に分かれてるの?
おれはカッコの数を気にしない回路が脳内に出来てしまってるから、
覚えることが少ない方が嬉しいなぁ。
0655デフォルトの名無しさん
2011/08/29(月) 07:20:23.930656デフォルトの名無しさん
2011/08/29(月) 07:43:51.47http://clojure.org/cheatsheet
http://clojure.org/lisps
下記の下半分も括弧の話題だよ
http://practical-scheme.net/wiliki/wiliki.cgi?Lisp%3AS%E5%BC%8F%E3%81%AE%E7%90%86%E7%94%B1
0657SCHEME餃子 ◆8X2XSCHEME
2011/08/29(月) 23:35:50.520658デフォルトの名無しさん
2011/08/30(火) 06:22:56.320659デフォルトの名無しさん
2011/08/30(火) 06:35:57.82内容も薄くて買って損したわ。これならオライリーのフグ本の方がずっといいな。
0660デフォルトの名無しさん
2011/08/30(火) 07:47:29.600661デフォルトの名無しさん
2011/08/30(火) 09:12:45.940662デフォルトの名無しさん
2011/08/30(火) 10:47:44.570663デフォルトの名無しさん
2011/08/30(火) 11:39:56.96どんな形式がいいんだろ
S式そのままだとmatlabとかRが読めないんだよなあ
0664デフォルトの名無しさん
2011/08/30(火) 14:47:34.95http://ken-wakita.net/ja/2009/11/building-ypsilon-on-snow-leopard/
をしても、出来上がった実行ファイルは Segmentation fault: 11 で死ぬ。
Xcode プロジェクトでも、最適化をオンにすると失敗する。
結局、SDKをCurrent にした後、コンパイラを GCC から LLVM へと変更したらそれで解決した。
0665デフォルトの名無しさん
2011/08/30(火) 19:23:30.74え、この内容で薄っぺらなの?
そもそもこの程度の本の技術は持ち合わせていて必要無かっただけでは?
本は薄いけど、初心者の俺にとって中身めちゃめちゃ濃すぎ。
0666デフォルトの名無しさん
2011/08/31(水) 01:45:49.49他のプログラミング言語でのプログラムに役に立つ知見が得られる。
いまこの本を読む(初心者としてLISPに触れる)ならそれがないと。
安いといっても薄いし、説明の丁寧さではGauche本だって同じくらい詳しいし、到達する
地点はずっと遠いわけだから、いまリスト遊びを選ぶ意味はまったくない。
0667デフォルトの名無しさん
2011/08/31(水) 02:06:28.850668デフォルトの名無しさん
2011/09/01(木) 00:49:35.69let overlambdaがつまらないので途中でやめた
SICPは最後の章以外呼んだ
さて次なに読もう
0669デフォルトの名無しさん
2011/09/01(木) 00:52:39.64『リスト遊び』
0670デフォルトの名無しさん
2011/09/01(木) 08:53:57.310671デフォルトの名無しさん
2011/09/01(木) 09:15:26.280672デフォルトの名無しさん
2011/09/03(土) 01:52:01.94なあ、Monaの開発は順調さ build5
http://hibari.2ch.net/test/read.cgi/os/1314741952/
0673668
2011/09/03(土) 21:21:24.04の和訳が本屋に積まれてた
立ち読みしてみたけど
以外と面白いね
次はこれいいかも
0674デフォルトの名無しさん
2011/09/03(土) 23:50:22.39>AI memo の lambda the
http://en.wikipedia.org/wiki/AI_Memo
AI Memo 353 (1976), "Lambda: The Ultimate Imperative"
AI Memo 379 (1976), "Lambda: The Ultimate Declarative"
これのこと?
0675デフォルトの名無しさん
2011/09/04(日) 00:19:18.720676デフォルトの名無しさん
2011/09/04(日) 00:50:45.59本を読みながらならgaucheがオススメ
0677デフォルトの名無しさん
2011/09/04(日) 00:55:32.50向こうのスレで聞いたらClojure。
基本だけならSchemeのがおぼえやすいかな
JAVAプログラマでライブラリ使える程度知識あるなら、
Clojureのが応用しやすい
0678デフォルトの名無しさん
2011/09/04(日) 02:21:52.270679デフォルトの名無しさん
2011/09/04(日) 02:30:15.85> ここで聞いたらGauche。
> 向こうのスレで聞いたらClojure。
なんでそんなこと言っているの。ここはLisp・Scheme全般のスレなんだが。
Gaucheは実用基本ライブラリが充実しているが、速度が難点だし、マンセーしたいならScheme単独スレ立てれば?
とJava嫌いのsbcl使いが言ってみる。
0680デフォルトの名無しさん
2011/09/04(日) 10:09:50.320681デフォルトの名無しさん
2011/09/04(日) 11:39:24.950682デフォルトの名無しさん
2011/09/04(日) 12:26:09.29どんなことやりたいのか教えてくれないと、答えにくいと思うよ。
ライブラリを組み合わせてアプリケーションを手早く作るなら、
Javaの資産をそのまま使えるClojureが有利で、FFI頼りのGaucheは分が悪い。
日常的に使うスクリプトなんかをUNIX向けに書いたりする場合、
shebangをそのまま使えるGaucheの方が楽だろうし、何より処理系が軽い。
あと、JVMが動かない場所ではClojureは動かないけど、
Boehm GCが動けばGaucheは大体どこでも動くだろうし。
0683デフォルトの名無しさん
2011/09/04(日) 12:52:47.72nailgunみたいな起動高速化技術を使ってもスタートアップに時間がかかりすぎる
0684デフォルトの名無しさん
2011/09/04(日) 12:58:39.74ClojureだとAndroidでもうごいちまうからなぁ
BoehmGCが動かない環境の方が少ないかもしれないが身の回りのプラットフォーム考えたらClojureに軍配があがっちまう
javavmとwget、leiningenスクリプトの3つがあればコンパイルとかせんでも動くってのは魅力だよ
ただスクリプトとして速起動ってのが目的だったらGacusheが一番いいだろう。
Win,Mac限定ならYpsilonも魅力的
0685デフォルトの名無しさん
2011/09/04(日) 13:36:24.63R5RS準拠でC/C++の資産がそのまま使えて、移植性抜群の上
とっつきやすさはGaucheと同レベル、コンパイラとして使えばトップクラスの速度
どうしておまえらChickenを選ばずGaucheを使うんだ
0686デフォルトの名無しさん
2011/09/04(日) 13:56:20.730687デフォルトの名無しさん
2011/09/04(日) 14:09:32.93csi -v すら暴走してCPU100%になる。
git clone git://code.call-cc.org/chicken-core
で落とした奴はコンパイルすら出来んし。
0688デフォルトの名無しさん
2011/09/04(日) 14:31:25.870689デフォルトの名無しさん
2011/09/04(日) 14:36:28.82iOSくらいじゃね?
あとは古いCPUのが動かないけど今時じゃないし
0690デフォルトの名無しさん
2011/09/04(日) 14:40:50.51ttp://www-sop.inria.fr/mimosa/fp/Bigloo/
0691デフォルトの名無しさん
2011/09/04(日) 14:46:50.16さっそくman chicken
だれがマンチキンやねん
0692デフォルトの名無しさん
2011/09/04(日) 17:37:22.95MacはMach-O形式その他独自なところが
UNIX方言としては敷居高くて保守が行き届かないことが多いね。
0693デフォルトの名無しさん
2011/09/04(日) 18:55:31.500694デフォルトの名無しさん
2011/09/04(日) 19:15:54.00どこかで似たようなの最近見たぞ。
俺がチェックしてる範囲内だから、確かそれも言語系だったはず。
0695デフォルトの名無しさん
2011/09/04(日) 19:38:46.60Kawaはslibに使えないのがいっぱい
あれなんとかならないの
0696デフォルトの名無しさん
2011/09/04(日) 20:19:41.860697デフォルトの名無しさん
2011/09/04(日) 20:48:07.01でも JVM 使ってる限り R5RS が言うような proper tail recursion は
期待しない方がいいと思う。
0698デフォルトの名無しさん
2011/09/04(日) 20:51:16.05defineで関数を定義している中でさらにdefineを使っているコードをみかけたのですが、これは中でdefineする意味はあるのでしょうか?
別々に定義する事はできないのでしょうか?
0699デフォルトの名無しさん
2011/09/04(日) 21:53:50.38その定義が関数の中からしか参照できなくなる。
つまり、他から不要な物を外に見せずに済むので衛生的。
実用的な話なら、意図しない関数や変数の参照を防げる。
もちろん、関数の外で定義しても良い。そういうスタイルもある。
ただし、R5RSではモジュールの機能がないので、
グローバルな定義になってしまうのだけ注意。
0700デフォルトの名無しさん
2011/09/04(日) 21:59:55.65あるいは名前空間を分けられたりするので、処理系に依存するコードで良いなら、
問題にはならない。あと、新仕様のR7RSからはモジュール機能が導入される予定。
パッケージで名前空間を扱うCommon Lispだと、ローカル関数を定義せず、
小さい関数も外に出すスタイルが主流なので、好きな方を使えば良いよ。
0701デフォルトの名無しさん
2011/09/04(日) 22:55:44.20LispかわいいよLispとつぶやくと声優オタになる不思議
0702デフォルトの名無しさん
2011/09/04(日) 23:03:11.590703デフォルトの名無しさん
2011/09/04(日) 23:15:57.340704SCHEME餃子 ◆8X2XSCHEME
2011/09/04(日) 23:17:17.23R7RS (ドラフト) のモジュールと R6RS のライブラリの違いをちょっと解説してくれんか
0705デフォルトの名無しさん
2011/09/04(日) 23:23:49.38そりゃ舌っ足らずなんて名前の声優ユニット無くなって当然じゃなかろうか?
0706デフォルトの名無しさん
2011/09/04(日) 23:37:21.050707デフォルトの名無しさん
2011/09/04(日) 23:45:08.44ttp://trac.sacrideo.us/wg/attachment/wiki/WikiStart/r7rs-draft-3.pdf
私JKだけど2ページ弱なのに"5.5. Modules"読まない男の人って…。
ベースはR6RS library。名前を変えてることからも分かる通り、互換性を保とうとはしていない。
R6RSでの<library body>は(begin <library body>)としなくちゃいけなくなったり、
SRFI-0のcond-expandも統合されていたり、includeできるようになったいたり、かなり違う。
簡略化されている部分(バージョンとか)と、拡張されている部分がある。
0708デフォルトの名無しさん
2011/09/04(日) 23:55:41.79短いから自分で読んでくれなさい。
0709デフォルトの名無しさん
2011/09/04(日) 23:57:36.07lambda が1匹、lambda が2匹、lambda が3匹、・・・
0710SCHEME餃子 ◆8X2XSCHEME
2011/09/04(日) 23:57:53.17いや、 >>700 の「新仕様のR7RSからは」とあるのが気になった。
R6RS では名前空間を分けられてない致命的なところでもあったのかと思ったけど、意味的にはそれほど大きな変化は無いのね。
0711デフォルトの名無しさん
2011/09/05(月) 00:01:07.88↓
R7RS
0712デフォルトの名無しさん
2011/09/05(月) 00:03:17.720713デフォルトの名無しさん
2011/09/05(月) 00:19:42.34ああ、ごめん。そういうことか。
「新仕様」の部分は、俺も書いた後で気付いたんだけど、
本当に無意識にR6RSを黒歴史としてスルーしてたわw
用途と目的は一緒だけど、セマンティクスは全然違うよ。
精読はしてないけど、R6RSでの7.2の部分とか大幅に省略されてる。
現状ではR5RS以前までの、多くの実装を許す寛容さがある感じ。
0714デフォルトの名無しさん
2011/09/05(月) 00:30:46.62基本はR6RSのライブラリなんだけど、文法が少々変更されていて、
意味的にはインポート・エクスポートレベルとか、フェーズとか、
R6RSで非常に細かく決められていた仕様がなくなってる。
あるいは、まだ書かれてないだけでこれから追加されるのかもしれないけど。
R7RSドラフトでのモジュールは、"5.1. Programs"で本当にさらっと触れられてて、
あとは"5.5. Modules"で書かれてる程度。細かい挙動とかは定義されてないっぽい。
0715デフォルトの名無しさん
2011/09/05(月) 00:45:39.520716デフォルトの名無しさん
2011/09/05(月) 10:03:08.400718デフォルトの名無しさん
2011/09/05(月) 11:23:28.44↑このコードで
35行目の部分なのですが、expがpairじゃなかったら35行目にいきますよね?
つまり#fという事なのに(#t (format・・・frames))))
とはどういうことなのでしょうか?
#tの意味がわかりません。
どなたかお答えお願いします。
0719デフォルトの名無しさん
2011/09/05(月) 11:29:05.69#tを評価すると真(#t)なので、それ以下が実行される。
0720デフォルトの名無しさん
2011/09/05(月) 11:34:35.66以下が実行されるということは
#tを書かずに(format-variable exp depth frames)
だけでも同じ動作をすると思うのですが、違うのでしょうか?
実際に試せば速いのですが、今手元に環境がないので検証できません。
どうかお答えお願いします。
また、このプログラムでoutputに表示させてるのは21行目のvであってますよね?
0721デフォルトの名無しさん
2011/09/05(月) 11:37:16.41(条件式2 式2)
...
(else 式n))
のelseを省略して、代わりに条件式に常に真になる式#tを使っただけ。
必ず真だからそこで引っかかるわけで、昔のlispのcondはelseなんて
なかったからむしろこういう書き方が当たり前だった。
0722デフォルトの名無しさん
2011/09/05(月) 11:41:09.54なるほど。
elseの代わりだったということですね。
では#tをelseに変えることはできて、どちらも書かない事は出来ないという解釈でいいですか?
0723デフォルトの名無しさん
2011/09/05(月) 14:20:35.70condは、(条件 式 ...)を任意の個数受け取る条件式で、
それぞれの(条件 式 ...)の「条件が成立したときだけ式を評価する」ものなので、
条件を省略することはできません。elseは必ず成功する条件の構文糖です。
(cond ...
((format-variable ...)))
とか、
(cond ...
(format-variable ...))
みたいにできないか、ってことですよね? 無理。
0724デフォルトの名無しさん
2011/09/05(月) 15:53:08.77R6RS - R5RS ∩ R7RS = やったら、逆に怖いわ。
単なる戦争やん。
0725デフォルトの名無しさん
2011/09/05(月) 17:02:49.20それに合うようにマクロ書けるならそれでいい
0726デフォルトの名無しさん
2011/09/05(月) 17:25:43.91意味論までR5RSまで逆戻りってのを見てると、喧嘩売ってるとしか思えないけどな。
0727デフォルトの名無しさん
2011/09/05(月) 18:10:54.990728SCHEME餃子 ◆8X2XSCHEME
2011/09/05(月) 18:44:05.810729デフォルトの名無しさん
2011/09/05(月) 19:03:10.24R6RS推進してたPLTの中の人とかはRacketに行っちゃったし、
Dybvigいないし、ドラフトもR5RS以前への揺り戻しが凄いし。
多分、そんなんやったら、またSussmanがどっか行っちゃう。
0730SCHEME餃子 ◆8X2XSCHEME
2011/09/05(月) 19:09:05.59環境を分離しないのがいいなら Common Lisp 使っとれって思うし。
R6RS がそんなに忌避されるのが納得いかないんだけど。 複雑ではあってもキッチリしてていいじゃん。
0731デフォルトの名無しさん
2011/09/05(月) 19:53:04.37ただ、どうもWG2の作業予定リスト見る限りでは、WG1の仕様の詳細化は考えてないっぽいんだよね。
実際はMLとかで熱く議論してたりするかもしれないけど、そこまでは追ってない。
ttp://www.scheme-reports.org/2010/working-group-2-charter.html
ttp://trac.sacrideo.us/wg/wiki/StandardDocket
R6RSは最小主義派には嫌がられると思うよ。プリミティブでない物をこれでもかと取り込んだから。
最小構成要素でないものはSRFIにしよう、っていうのがR6RS反対派の主な意見。
それと、CLの部分は外してると思う。CLはコンパイル時のマクロなどの処理について、
順番から環境まで非常に詳細に決められている。HyperSpec読むと分かるけど。
むしろ、色々きっちり決まってる方が良いなら、CLの方が性に合うかもよ。試してみない?
0732デフォルトの名無しさん
2011/09/05(月) 20:12:10.34ttp://trac.sacrideo.us/wg/wiki/ModulesShinn
で、これにはWG2でフェーズの問題は多分考える、って書いてある。
WG2はまだ全然動いてなくて、work itemsに入ってないって話なのかな?
情報がバラけてて追いづらいなー。これ作業してる人把握できてんのかな。
0733SCHEME餃子 ◆8X2XSCHEME
2011/09/05(月) 20:16:26.89Common Lisp がキッチリしてないとは思ってないよ。
Common Lisp についてよく知らんけど、記述は詳細だというのは知ってる。
フェイズの考え方をどう決めるかについて、
Common Lisp 的にしちゃうくらいならそういう奴は Common Lisp を使っとればいいのであって、
Scheme でやるからには Scheme らしさってものがあって欲しいという意味合いのつもりだった。
そして俺は R6RS は Scheme らしさが有ると思ってる。
SRFI に追い出すべき部分がどれかについては議論すべきところはあると思うけど。
R6RS を元に削ぎ落していくんじゃいかんかったんか?
0734デフォルトの名無しさん
2011/09/05(月) 20:35:25.88既に出されて否決されてることが良くあるよ。例えばモジュールについて
r6rsを元に簡略化するって案も検討されて否決されてる。WG1のwikiのballotのところ参照。
それについて不満があって、WGメンバを説得できるだけの根拠を示せるなら
scheme-reports MLに投稿すればふたたび投票にかけられる可能性はあるけどね。
つうか、ほんとに疑問に思ったり良い案だと思うなら、こんなとこに書いてないで
MLにポストすればいいんじゃないか。単にどこにも影響を及ぼさない雑談を
したいだけならここでもいいけど。
0735デフォルトの名無しさん
2011/09/05(月) 20:45:23.54R6RSは反対意見多かったし、一度R5RSから出直そう、ってことじゃないの?
R6RSは根本の意味論の部分からして操作的意味論になっちゃってるから、
削っていくのも難しいんだと思う。表示的意味論の方が良いって人もいるし。
で、ベースのコンセンサスの得やすい部分だけ小さな仕様としてまとめちゃって、
その上に実用を目指した詳細で(R6RSも考慮して)大きな仕様を乗せましょう、と。
前者がsmall languageで後者がlarge language。WG1とWG2がそれぞれ作ってる。
これ別にRnRS + SRFIと何も変わらなくね? と書いてて思った俺ミニマリスト。
>>734
ああ、興味なかったら長々と申し訳ない。
0736SCHEME餃子 ◆8X2XSCHEME
2011/09/05(月) 20:47:43.39だって俺、英語わからんし。
なんとか文章にしたことろで説得力のあるものになりそうもない。
0737SCHEME餃子 ◆8X2XSCHEME
2011/09/05(月) 20:58:29.78モジュールの枠組みは規格に入れなきゃならん最低限のとこじゃね?
そうなるとフェイズの話、マクロの話はくっついてくるし、個別に考えられるようなもんじゃないと思うんだよな。
Unicode 関係とかレコード関係とかは規格に入れずに済ませることもできたと思う。
大きな規格が望ましいと思ってるわけじゃないが、かと言って「最小限」のラインを小さく考えすぎだと思う。
0738デフォルトの名無しさん
2011/09/05(月) 21:56:44.92> R6RSは根本の意味論の部分からして操作的意味論になっちゃってるから、
> 削っていくのも難しいんだと思う。
なことはない。
0739デフォルトの名無しさん
2011/09/06(火) 00:04:38.53> ああ、興味なかったら長々と申し訳ない。
基本、ここはスレ伸びないし、ネタになればなんでもありじゃない。
仕様が大きいと創始者がおれScheme言語つくるの大変だし、その言語の開発に関わりたい人もコミットしにくくそうだよね。
そもそもだけど、R5RSの問題点ってなんなの?
0740デフォルトの名無しさん
2011/09/06(火) 04:47:31.09http://developers.slashdot.jp/story/11/09/05/0922202/
>Schemeベースのプログラム言語の1つに、「GNU Guile」がある。Guileはアプリケーションの機能を
>拡張するためのスクリプト言語として開発されたものの、利用しているソフトウェアは少なく、
>現在ではPythonやJavaScriptなどが多く使われる状況だ。しかし、本家/.で「Guileは、
>ユーザーが少ないものの、GNUに最も適した拡張言語である」と主張する記事が話題となっている(本家/.記事)。
0741デフォルトの名無しさん
2011/09/06(火) 06:07:23.030742デフォルトの名無しさん
2011/09/06(火) 06:09:44.590743デフォルトの名無しさん
2011/09/06(火) 06:19:13.95モジュール機能が欠けていたり、移植性に致命的な問題があった。
R6RSの大きな目標のひとつは移植性。で、実際に改善はされた。
ttp://practical-scheme.net/wiliki/wiliki.cgi?R6RS%3aFAQ
ただ、十分なコンセンサスが得られる前に規格が成立してしまったので、
各所に未解決の争点が残ってしまい、色々揉めたのはご存知の通り。
0744デフォルトの名無しさん
2011/09/06(火) 09:05:25.81しかも嘘を。
0745SCHEME餃子 ◆8X2XSCHEME
2011/09/06(火) 12:45:35.30Unicode は別枠でいいかと思ったけど、ポートとか文字列とかのデザインにもかかわってくるな。
関数 (とかマクロ) を増やせばいいだけのものなら SRFI でって言えると思うけど、
実際にはコアの上に積み重ねるような単純な構成は無理だよ。 各機能は相互にかかるんだから。
0746デフォルトの名無しさん
2011/09/06(火) 17:17:02.870747SCHEME餃子 ◆8X2XSCHEME
2011/09/06(火) 17:47:22.51leque さんがたくさん訳してるから助かる。
0748SCHEME餃子 ◆8X2XSCHEME
2011/09/06(火) 18:12:53.07(それともそういうのもアリなの? 拡張するならともかく、置換えちゃうのはマズいでしょう。)
「細かいことは SRFI で議論しろ」って言うなら RnRS ではなるべく未定義な部分を残すしかなくなる。
でも、それじゃ移植性が問題ってことで R5RS の問題が解決されない。
だいたい機能が本質的かどうかなんて相対的なものだろ。
全体が確定してないのに、どれが本質かなんて最初からわかるわけがない。
強いてやるのであれば large language を決めてから本質・非本質の区分けをすべきじゃないか?
0749デフォルトの名無しさん
2011/09/06(火) 18:16:43.71Common Lispならまさに相性ばっちりだと思うんだけど。
何でそんなにSchemeにこだわるの?
0750デフォルトの名無しさん
2011/09/06(火) 18:19:25.79それを否定しちゃうとSchemeの存在意義も否定される。
0751デフォルトの名無しさん
2011/09/06(火) 18:27:15.480752デフォルトの名無しさん
2011/09/06(火) 18:43:42.34Common Lisp
のサブセットがあればschemeなみに流行するんでないか
0753デフォルトの名無しさん
2011/09/06(火) 19:15:42.14うーん、minimal+SRFI派の発想はちょっと違うんだな。議論が出て決まらない
ような機能についてはRnRSでは曖昧(どちらもアリ)にしといて、その空間で
色々実験するためにSRFIを出す。重複するSRFIが出たり、互いに矛盾するものが
出るかもしれないけれど、最終的には一番良く実装され使われたものが残るだろう。
そうやって「実績を積んだ」SRFIを徐々にRnRSに取り込んでゆけばいい、って考え。
R6RSで反発があったのは、そうやってたくさんの処理系で何年も、時には10-20年かけて
確かめられてからRnRSに取り込むってフローではなく、R6RSで新規にデザインされた
ものが2-3の参照実装だけで取り込まれたこと。
0754デフォルトの名無しさん
2011/09/06(火) 19:17:23.720755SCHEME餃子 ◆8X2XSCHEME
2011/09/06(火) 20:24:29.75愛ゆえに。
>>750 >>753
R6RS が急がれたのってなんで?
要するにもっと時間をかければよかったんだろ。
>>752
ISLISP がそれに近いと思う。
でも、流行しなかっただろ。
0756デフォルトの名無しさん
2011/09/07(水) 01:44:36.62つまりおまえらがもっと処理系を作るべきだと思いましゅ
0757デフォルトの名無しさん
2011/09/07(水) 01:45:26.53Common Lispもそろそろ改訂して欲しいけど、CLtL3とかフェードアウトしちゃったし。
アクティブに活動してるSchemeには頑張って欲しい。
0758デフォルトの名無しさん
2011/09/07(水) 01:48:51.30クラウドファンドでお金集めて、スレッドの実装を大幅に改善するために作業中。
0759デフォルトの名無しさん
2011/09/07(水) 02:01:52.54そーじゃなくて、お前がやるんだよ
がんばれ東北、がんばれ日本じゃねーだろ
おまえがやるんだよ
おまえがやれやあああああああ
0760デフォルトの名無しさん
2011/09/07(水) 02:04:58.300761デフォルトの名無しさん
2011/09/07(水) 02:05:14.92汚した奴が処理するのが当たり前だろ
そこは、がんばれ東北じゃねーだろ
東電さっさと掃除しろだろ
そもそも土地にがんばれつってどーすんだよ
気が狂ってるとしか言いようがないな
0762デフォルトの名無しさん
2011/09/07(水) 02:07:20.10掃除もせずに復興しろとか
無茶を言うなあああああああああああ
0763デフォルトの名無しさん
2011/09/07(水) 02:10:43.25処理系の最大公約数が規格になるべきなんだよ
CommonLispはそうして出来たんだよ
そこを間違えんなよ
0764デフォルトの名無しさん
2011/09/07(水) 02:13:48.40お前は駅のトイレでおしっここぼしたら
トイレ掃除するのかよ
0765デフォルトの名無しさん
2011/09/07(水) 02:24:07.86お前は駅のトイレで汚したまま立ち去つもりか?
0766デフォルトの名無しさん
2011/09/07(水) 02:26:43.02> お前は駅のトイレでおしっここぼしたら
> トイレ掃除するのかよ
掃除しろよ。次の奴が使えないじゃないか。
0767デフォルトの名無しさん
2011/09/07(水) 02:29:27.07死んで因果関係が認められた奴にだけ賠償したほうが
安上がりだわなw
0768デフォルトの名無しさん
2011/09/07(水) 02:47:39.69てーか、Gray streamsとかMetaobject Protocolとか、
もう機能的には割と一定のコンセンサスの取れてんのがあるんだよ。
スレッドのAPIとかもそうかもな。
で、そういう事実上デファクトになってて良く使われてんのに、
規格が改定されてねー状況があんの。そのせいでAPIがバラけてんだよ。
Lisp quote unquote読んでこい。
あとは*features*の中身とかも全然統一されてなくて戦国時代なんだよ。
こんなん優先されるべき仕様なんてねーから規格でさっさと決めろとか思うだろ。
trivial-featuresとかマジ無駄な労力だろ。
0769デフォルトの名無しさん
2011/09/07(水) 03:04:18.99それを使う奴が考えて必要なら処理系作者様方に
お願い申し上げて対応して頂くのが筋だ
押し付けんなカスが
0770デフォルトの名無しさん
2011/09/07(水) 03:06:55.84有用だと思えば勝手に入れるだけだ
キモイ規格なんかはガン無視なだけ
0771デフォルトの名無しさん
2011/09/07(水) 06:55:02.25なんだそのUnCommon Lispは
レアリティ高そうだな
0772デフォルトの名無しさん
2011/09/07(水) 09:08:22.40() => #fにしようって動きはないのか
0773デフォルトの名無しさん
2011/09/07(水) 13:50:01.920774デフォルトの名無しさん
2011/09/07(水) 15:51:15.82キモイよね
0775デフォルトの名無しさん
2011/09/07(水) 23:10:13.16仕様が。これならCommon Lispでいいかなと。
EuLispの方に頑張って欲しかった。
0776デフォルトの名無しさん
2011/09/08(木) 12:19:34.14http://www.cs.bath.ac.uk/~jap/EuLisp/
http://henry.github.com/EuLisp/Doc/EuLisp-0.991/eulisp.pdf
EuLisp、仕様のversionが17年ぶりに0.001上がってワロタ。
0777デフォルトの名無しさん
2011/09/08(木) 14:38:16.510778デフォルトの名無しさん
2011/09/08(木) 14:56:27.95windows版しかないのか
EuLispはyacc/lexぽいから簡単そうだな
0779デフォルトの名無しさん
2011/09/08(木) 15:56:05.06それはOKI ISLispの話じゃ?
http://www.islisp.org/jp/other-ISLisp-jp.html
EuLispの仕様は結構良かったのに全く流行らなかったな。
0780デフォルトの名無しさん
2011/09/08(木) 17:14:43.86微妙に画面におさまりきらない
あのhtmlが画面に合わせてリサイズされるといいのに
0781デフォルトの名無しさん
2011/09/08(木) 19:09:15.970782デフォルトの名無しさん
2011/09/08(木) 19:12:08.26板違い
0783デフォルトの名無しさん
2011/09/08(木) 19:46:16.93iphoneの対応ファイルって知らないけど、変換すればいいだけの話じゃないの。
0784デフォルトの名無しさん
2011/09/09(金) 09:11:12.53http://sicpebook.wordpress.com/
0785デフォルトの名無しさん
2011/09/10(土) 11:46:38.44第14章 入出力 - karetta.jp
http://karetta.jp/book-node/programming-gauche/197706
文字列入力ポートを作成して
(define in (open-input-string "(1 2 3\n\"foo\""))
read手続きを呼び出すと
(read in)
*** READ-ERROR: Read error at "(input string port)":line 2: EOF inside a list (starting from line 1)
Stack Trace:
こう表示されてしまいます
(1 2 3)がかえってくるものだと思うのですが
どこか間違っているのでしょうか
0786デフォルトの名無しさん
2011/09/10(土) 12:20:53.35つーかエラーメッセージくらい読め
0787デフォルトの名無しさん
2011/09/10(土) 12:35:16.38EmacsだろうがNotePad++だろうが何でもいいから
0788デフォルトの名無しさん
2011/09/10(土) 18:01:09.89cmuclって速いのかとずっと思っていたけど、clispよりは速いけど、sbclより10倍以上遅いのね。
>>785
カッコ支援エディタを使うか。
カッコの数を数えやすいように改行することだね。
0789デフォルトの名無しさん
2011/09/10(土) 18:05:11.53全てネイティブにコンパイルして実行する流儀を採用。
CMUCLは保守されてるだけで、開発はされてない。
CMUCLの財産でSBCLは成り立ってる。
0790デフォルトの名無しさん
2011/09/10(土) 18:16:05.19> CMUCLは保守されてるだけで、開発はされてない。
> CMUCLの財産でSBCLは成り立ってる。
いや、そうだけど。
8年前ぐらいのブログで数日かかる計算研究ツールに使っているというのがあったから、
x86に関してはそれなりの速度が出ていたのかなと思って。
ただ研究ツールは過去の遺産でそれを使っていたのかな。
0791デフォルトの名無しさん
2011/09/10(土) 19:47:26.80ありがとうございます。その通りでした
すみません
>>787
emacsを使っていたのですが、(define in の部分でエラーが出なかったので、
(返り値がおかしくはなかったので)
見逃していました。
0792デフォルトの名無しさん
2011/09/10(土) 19:50:54.75どんなコード?
SBCLは処理系の中で一番積極的に最適化の改善してるイメージあるけど、
それでもCMUCLが10倍遅いってのは、なんか違和感がある。
ttp://www.cliki.net/Performance%20Benchmarks
CMUCLそれ自体も、かなり優秀なコンパイラ。
0793デフォルトの名無しさん
2011/09/10(土) 20:16:15.90> CMUCLは保守されてるだけで、開発はされてない。
開発されてるみたいよ。
ttp://lists.common-lisp.net/pipermail/cmucl-cvs/
悲しいくらいにRaymond Toyしかコミットしてないけど。
0794デフォルトの名無しさん
2011/09/10(土) 21:34:04.09ブログのネタにしようと思っていたのに。sbclは最新。cmuclも最新だと思う。
(declaim (optimize (debug 0) (speed 3) (space 0) (safety 0) (compilation-speed 0)))
(setf *random-state* (make-random-state t))
(defun make-data (size)
(let ((ary (make-array size)))
(loop for i from 0 below size do
(setf (svref ary i) (random 1.0)))
ary))
(defun bubble-sort (ary)
(loop for i from (length ary) above 1 do
(loop for j from 1 below i do
(if (> (svref ary (- j 1)) (svref ary j))
(let ((temp (svref ary (- j 1))))
(setf (svref ary (- j 1)) (svref ary j))
(setf (svref ary j) temp))))))
(let ((ary (make-data 10000)))
(time (bubble-sort ary)))
0795デフォルトの名無しさん
2011/09/10(土) 21:36:00.558年前だとSBCLはforkしてまだ間がないから、
Linux x86に注力してたはず。
CMUCLは主戦場がSolaris/SPARCだったから、
その人はSPARC使ってたんじゃないのかね。
0796デフォルトの名無しさん
2011/09/10(土) 21:36:31.840797デフォルトの名無しさん
2011/09/10(土) 22:11:22.4810,000個
sbcl 3.278 seconds of real time
cmucl 3.53 seconds of real time
clisp Real time: 42.40196 sec.
でした。
デマ情報を流した。さーせん。
ネイティブでベンチマークして、sbclだけコンパイルして、ベンチマークして、寝ちまったみたいだな。
0798デフォルトの名無しさん
2011/09/10(土) 23:14:36.420799デフォルトの名無しさん
2011/09/10(土) 23:37:25.14現在進行形でAnton Kovalenkoがハイペースで改善中。
バイナリもあるから試してみれば? 俺も今試しに使ってるところ。
ttps://github.com/akovalenko/sbcl-win32-threads/wiki
0800デフォルトの名無しさん
2011/09/11(日) 07:36:16.04sbclすぐにヒープ使い切ったとかいうエラー出るんだもん
0801デフォルトの名無しさん
2011/09/11(日) 08:14:53.50SICPのEPUB版あった
http://d.hatena.ne.jp/mrkn/20100722/1279792158
0802デフォルトの名無しさん
2011/09/11(日) 08:33:11.73単にヒープのサイズ制限の初期値が低いだけな気がする。32ビット?
起動時に--dynamic-space-sizeでヒープのサイズ指定するのは駄目かな?
ttp://www.sbcl.org/manual/Runtime-Options.html#Runtime-Options
ttp://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2007-03/msg00292.html
Clozure CLは単にデフォルト値が512GBなだけっぽい。
ttp://ccl.clozure.com/ccl-documentation.html#Command-Line-Options
ttp://ccl.clozure.com/ccl-documentation.html#Heap-space-allocation
0803デフォルトの名無しさん
2011/09/11(日) 08:43:54.10> (- sb-vm:dynamic-space-end sb-vm:dynamic-space-start)
8589869056
> (float (/ 8589869056 1024 1024 1024))
7.999939
この環境でのSBCLのデフォルト値は8GB。
0804デフォルトの名無しさん
2011/09/11(日) 09:11:22.640805デフォルトの名無しさん
2011/09/11(日) 09:23:45.86ttp://www.nabe-intl.co.jp/largemem/largememIII.html
0806デフォルトの名無しさん
2011/09/11(日) 14:07:40.67120万くらいなら個人で欲しいけど、そんなもんじゃ済まんのだろうなぁ
0807デフォルトの名無しさん
2011/09/11(日) 15:48:49.950808デフォルトの名無しさん
2011/09/11(日) 17:26:25.800809デフォルトの名無しさん
2011/09/11(日) 18:26:35.670810デフォルトの名無しさん
2011/09/11(日) 19:12:49.18そう呼んでる個々のそれぞれのものであって、個々に違う。
(例えば「C言語の関数」とか)
0811デフォルトの名無しさん
2011/09/11(日) 19:20:49.26計算機科学の視点で見れば通常はサブプログラム、サブルーチンといったものでひとくくりにする事は可能だよ
0812デフォルトの名無しさん
2011/09/11(日) 19:24:52.70数学の視点ならあるかも。
0813デフォルトの名無しさん
2011/09/11(日) 20:56:34.78ttp://www-06.ibm.com/systems/jp/x/scalable/3690x5/index.shtml
ttp://www-06.ibm.com/systems/jp/x/scalable/3690x5/spec.shtml
これもめいっぱい増設すればいけるが、増設メモリがいくら位なのかわからん
0814デフォルトの名無しさん
2011/09/12(月) 23:58:25.350815デフォルトの名無しさん
2011/09/13(火) 00:47:39.150816デフォルトの名無しさん
2011/09/13(火) 01:56:19.920817デフォルトの名無しさん
2011/09/13(火) 02:42:44.500818デフォルトの名無しさん
2011/09/13(火) 03:46:26.630819デフォルトの名無しさん
2011/09/13(火) 06:23:21.630820誘導
2011/09/13(火) 07:08:35.11関数型言語Part5
http://hibari.2ch.net/test/read.cgi/tech/1252470706/
0821デフォルトの名無しさん
2011/09/13(火) 17:23:51.220822デフォルトの名無しさん
2011/09/13(火) 17:26:38.070823デフォルトの名無しさん
2011/09/13(火) 17:49:28.180824SCHEME餃子 ◆8X2XSCHEME
2011/09/13(火) 19:40:37.29うまいこと返せよ。
0825デフォルトの名無しさん
2011/09/13(火) 23:31:44.21にマクロ展開の機能追加
0826デフォルトの名無しさん
2011/09/15(木) 23:35:46.78(define-macro delay
(lamda (expr) `(lambda () ,exp))))
でいいと思うんだけど
何か不都合起きる可能性あるのだろうか
0827デフォルトの名無しさん
2011/09/16(金) 01:10:30.20forceで何度でも評価されてしまうが
0828SCHEME餃子 ◆8X2XSCHEME
2011/09/16(金) 01:19:46.44規格では一回だけ評価するって明記してあるのでそれを期待したプログラミングをするかもしれない。
0829デフォルトの名無しさん
2011/09/16(金) 01:44:26.630830デフォルトの名無しさん
2011/09/16(金) 01:54:54.850831デフォルトの名無しさん
2011/09/16(金) 03:28:27.200832デフォルトの名無しさん
2011/09/16(金) 22:18:05.630833デフォルトの名無しさん
2011/09/17(土) 23:54:16.92Common Lispでは
値しか返さない関数を
多値を返すように1変更しても
返値を受け取る側が変更されてない(1値しか返ってこない)前提でも問題ない(2番目以降が無視される)
Schemeでは多値を返すように変更すると
受け取る側を全部変更しないといけない(少なくともRacketではエラーになる)
Common Lispみたいに受け取る側を変更しないで
多値を返すように変更する方法ないでしょうか
0834デフォルトの名無しさん
2011/09/18(日) 00:23:44.87よくよく考えると、common lispの仕様って複雑なことをやっているんだな
そういうものかと流していたけど、実装するとなるとどうやっているのか思いつかない
不思議だ
0835デフォルトの名無しさん
2011/09/18(日) 00:58:53.16同じ数の多値を使う文脈なら普通に、
少ない数の多値(単値)を使う文脈なら上の部分だけ使うだけ。
足りなければエラー等だわな。
0836デフォルトの名無しさん
2011/09/18(日) 01:44:31.97そういう仕様は r5rs にも r6rs にもないはず。
call-with-values 的なものを実装することもできない。
手続きの arity を取得する方法が無いから、正しく apply する方法がない。
receive 的なものは一応実装可能。
トップレベル変数に値を保存しておけばいい。
0837デフォルトの名無しさん
2011/09/18(日) 09:04:11.77使い勝手を考えればCommon Lispの仕様の方が便利なのは確かなんだが、
Schemeの多値の論拠ってのは関数呼び出しとリターンの対称性なんで、
返される余分な多値が無視できるなら、関数に余分な引数を渡した時も
無視されるようになってないと整合性がとれない。
0838デフォルトの名無しさん
2011/09/18(日) 09:11:38.880839SCHEME餃子 ◆8X2XSCHEME
2011/09/18(日) 09:14:01.73余った分は捨てて、足りなければ補う。
(define-syntax receive*
(syntax-rules ()
((_ (var ...) expression body ...)
(call-with-values (lambda() expression)
(lambda x (let-optionals* x ((var #f) ... . rest) body ...))))))
let-optionals* は RnRS には無いけど定義は省略。 RnRS の範囲内で実装可能なのでググれ。
↓こんな感じで使う。
(receive* (x y z) (values 1 2 3 4 5) (list x y z)) => (1 2 3)
(receive* (x y z) (values 1 2 ) (list x y z)) => (1 2 #f)
受け側を何も弄らずにというのは無理だけど、このマクロで覆っている箇所でなら受け取る値の数が増減しても吸収できる。
Scheme として可能な対処はこれが限界じゃないかなぁ。
0840SCHEME餃子 ◆8X2XSCHEME
2011/09/18(日) 09:16:20.800841デフォルトの名無しさん
2011/09/18(日) 09:51:46.200842SCHEME餃子 ◆8X2XSCHEME
2011/09/18(日) 10:34:20.35規格では、継続が期待しているのと違う数の値を渡した場合は未定義のはずだよ。
Gauche に限って言えばイマサラ挙動が覆されることは無いと思うけど、
Gauche のドキュメント中でも明記はされてないみたいなんだよな。
ざっと見た感じ、関連する記述は↓くらいだった。
> http://practical-scheme.net/gauche/man/?l=jp&p=values
> 呼び出し側は、組み込み構文の receive (変数束縛参照)か、
> 下に説明するR5RSの手続きcall-with-valuesを使って多値を受け取ることができます。
つまりは多値を receive とか使わずに受けた場合は Gauche でも未定義って解釈になると思う。
0843デフォルトの名無しさん
2011/09/24(土) 18:42:41.81という関数を作ったとき、
(add3 1 2)
はエラーではなく、
(lambda (c) (+ 1 2 c))
を返すとかって便利だと思う?
おれは余計なお世話だと思う。
0844デフォルトの名無しさん
2011/09/24(土) 18:48:50.770845デフォルトの名無しさん
2011/09/24(土) 18:59:40.70受け側で数が合わなければ未定義ではなく、エラーにすべきだろう。
実装するなら多値の数は固定にすべきだ。
数学的根拠もない、対象性もない、便利でもない、意味がない。
0846デフォルトの名無しさん
2011/09/24(土) 19:48:47.28=> 6
って感じに使えたら素敵じゃね?
0847SCHEME餃子 ◆8X2XSCHEME
2011/09/24(土) 20:02:43.94いわゆるカリー化ってやつだろ。 Haskell なんかではそうなってるよ。
例えば↓こう書いたら3引数のように見える。
hoge x y z = x + y + z
でも、これは構文糖に過ぎなくて、↓のように書くのと同じと解釈される。
hoge = (\x -> (\y -> (\z -> (x + y + z))))
この場合は演算子の優先順位的に括弧を省略できるので
hoge = \x -> \y -> \z -> x + y + z
とも書ける。
つまり、 Haskell に於いては全ての関数はたかだかひとつの引数しかとらない。
Haskell のこの方式はそれなりに使い勝手がいい面もあるんだけど、
あくまでも全体がそれで統一されてるから出来ることなんで、 Scheme でうまく整合性はとれんと思う。
定義のときに明示する形であれば出来るけど、便利という気はしないなぁ。
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%E6%89%8B%E7%B6%9A%E3%81%8D%E3%81%AEcurry%E5%8C%96
0848デフォルトの名無しさん
2011/09/24(土) 20:03:32.230849デフォルトの名無しさん
2011/09/24(土) 20:41:06.28MLは副作用あるくせに自動カリー化らしいけど、納得いかない。
0850デフォルトの名無しさん
2011/09/24(土) 21:57:54.61引数をひとつしか取らないだけだ
0851デフォルトの名無しさん
2011/09/24(土) 21:59:49.670852デフォルトの名無しさん
2011/09/24(土) 22:25:59.350853デフォルトの名無しさん
2011/09/24(土) 23:50:03.09> つまり
飛躍しすぎw
0854デフォルトの名無しさん
2011/09/25(日) 00:43:13.47どういうこと?
0855デフォルトの名無しさん
2011/09/25(日) 01:03:37.620856デフォルトの名無しさん
2011/09/25(日) 01:17:38.70<peculiar identifier> はケツに付くだけで、<identifier> になるには頭に <initial> が必要。
0857デフォルトの名無しさん
2011/09/25(日) 01:25:10.82<special subsequent>と勘違いしてる?
<peculiar identifier>は単独で<identifier>だよ
0858デフォルトの名無しさん
2011/09/25(日) 01:26:53.69うわー、普通に | をスルーしてた。サンクス
目が曇ってた
0859デフォルトの名無しさん
2011/09/25(日) 06:10:15.99(define (add3 a b . c) (+ a b . c))
という関数がエラーなのはおかしい。
仕様に則れば、
(define (add3 a b . c) (apply + `(,a ,b ,@c)))
とでも書き直されるケースだが、そもそも有限の引数を、
わざわざ効率が悪いと判りきっているリストで処理したいなんて
一体誰が思うのだろうか?
いまだにこのような思考停止を何の疑問にも思わず、
伝統として受け継いでいる事自体が、
LISP全体の進歩の妨げになっているのではないか。
0860デフォルトの名無しさん
2011/09/25(日) 06:36:54.90誰もが避けて通りたい機能の筆頭に挙げるはずだ。
リストへの変換を強制され、マクロや構文は受け付けない。
こんな気味の悪い遺物を使い続けるのはまさに愚行に見える。
その上で多値を可変で扱いましょうだなんて戯言にしか聞こえない。
0861デフォルトの名無しさん
2011/09/25(日) 06:45:07.23Bad Apply!!
0862デフォルトの名無しさん
2011/09/25(日) 08:32:02.570863デフォルトの名無しさん
2011/09/25(日) 08:35:13.630864デフォルトの名無しさん
2011/09/25(日) 08:41:21.68(apply + a b c)
と書いちゃいけないのさ
なるほど。
じゃあ、 Haskell では可変長引数はどう解決すんの?
0866デフォルトの名無しさん
2011/09/25(日) 09:29:50.00Haskell printfでぐぐれ
0867SCHEME餃子 ◆8X2XSCHEME
2011/09/25(日) 09:31:45.50だから全ての関数は一引数なんだって。
型の付け方を工夫して可変長引数みたいに見せる方法はあるけど、それは Scheme では真似できない。
0868デフォルトの名無しさん
2011/09/25(日) 17:53:05.21>>864
単に仕様を知らなかったんじゃないかな。(apply + `(,a ,b ,@c))なんて書き方、
無駄にコンシングが入るから、普通しないし。
「Lispを知らない人に限って」理論は今日も絶好調。
マクロの凝った使い方を学ぶ良いテキストってどんなのがあるかな? 一応日本語限定縛り付きで。
とりあえず R5RS の範囲内だけでもいいけど、 R6RS とか、規格に採用されなかったシステムとかも興味有る。
0870デフォルトの名無しさん
2011/09/26(月) 02:34:15.14伝統的なマクロの話で良いなら、Common Lispの本が参考になるよ。
On LispとかLet Over Lambdaとか。
健全なマクロについての良い本とかは、自分は聞いたことない。
ただ、SRFIのリファレンス実装とか濃いのはたくさんあるから、
そういう意味では教科書には困らないんじゃないかとも思う。
0871デフォルトの名無しさん
2011/09/26(月) 02:41:46.200872デフォルトの名無しさん
2011/09/26(月) 02:48:57.88SRFIとかの話なら、手本のコードだけなら腐るほどあるって意味だから、
英語でも日本語でも読み解く難易度に違いはないよ。
0873デフォルトの名無しさん
2011/09/26(月) 04:15:35.22パターンマッチのマクロあれば
yacyいらないなあ
0874デフォルトの名無しさん
2011/09/26(月) 10:57:20.78applyはevalの関数適用担当の下請け関数なので。
> リストへの変換を強制され
もともとリストになっている時(関数適用のcdr部)に使うものですし。
0875869
2011/09/26(月) 16:39:25.92On Lisp を一回は読みました。
マクロシステムを実装したいわけではないので、
各システムのパラダイムを理解する助けになるような小ネタ集みたいなのが読みたかったんです。
各パラダイムの中で限界に挑むようなパズル的な面白さがあるものがいいですね。
手習いのマクロ版みたいなのをイメージしてました。
コードを見れば英語でも日本語でも関係ないという主張は理解できるのですが、
英語だとそもそも見つけるのが難しいので、心当たりがあれば紹介してもらえらば助かります。
0876デフォルトの名無しさん
2011/09/26(月) 16:57:16.26http://okmij.org/ftp/Scheme/macros.html
0877デフォルトの名無しさん
2011/09/26(月) 16:58:14.27http://community.schemewiki.org/?scheme-faq-macros
0878SCHEME餃子 ◆8X2XSCHEME
2011/09/26(月) 18:07:55.45俺が凄いと思ったネタはこれだな。
syntax-rules で anaphoric if
http://d.hatena.ne.jp/leque/20100826/p1
(aif (assoc foo alis) (cdr it) #f)
とした場合に assoc の結果が it に代入されてて欲しいわけだけど、
マクロに it という識別子が入力されてないと it に代入することは出来ない。
いやいや、 it は与えられてるじゃん、
(aif (assoc foo alis) (cdr it ←ここに ) #f)
という目からウロコな話。
言われて見ればそりゃそうだって感じだけど、
syntax-rules に慣れてると逆に思い付かないんだよな。
0879デフォルトの名無しさん
2011/09/26(月) 18:55:10.90→マクロの勉強したい→on Lisp→これCommon Lisp本だウボァー
0880デフォルトの名無しさん
2011/09/26(月) 20:06:37.45それなんて俺
0881デフォルトの名無しさん
2011/09/26(月) 20:08:39.67名前の衝突を回避するアプローチがdefine-macroと違うだけで、
本質的には同じものだから(だよね?)、別に無駄にはならんと思うけど。
それに、define-macro自体に対応してる処理系も多いんじゃなかったっけ?
0882デフォルトの名無しさん
2011/09/26(月) 21:41:05.75何がすごいんだか判らない・・
0883デフォルトの名無しさん
2011/09/26(月) 22:00:20.56hygienicマクロで無理矢理変数を捕獲してるのが凄い。
0884デフォルトの名無しさん
2011/09/26(月) 22:13:24.71スコープの外側の変数に対して破壊的操作はできない……ですよね?
処理系依存なのか、規格にあるのか気になって
(define x #t)
((lambda () (set! x #f))) => xを操作できない?
0885デフォルトの名無しさん
2011/09/26(月) 22:18:57.62逆に、なんでできないと思ったの?
0886デフォルトの名無しさん
2011/09/26(月) 22:27:30.24すみません、できるんですね。
なんか自前の脳がよくわかんなくなっててうまく説明しにくいです
ほかの言語でもスコープの内側からの操作は普通にできるのに、なんで疑問に思ったのか……
内側のスコープで変数が操作できることを確認して、なぜか驚いて
なぜか『別のスコープ操作できちゃだめなんじゃない?』と思い込んでしまって
内側なんだから別のスコープではないですよね
変なこと質問しちゃってすみません
0887デフォルトの名無しさん
2011/09/26(月) 22:34:51.78上のは別に責めたりしてるわけじゃなくて、どこで勘違いしたのか知りたかっただけ。
その過程で>>886みたいに自分で勘違いに気付けることも多いし。
0888デフォルトの名無しさん
2011/09/26(月) 22:39:33.91お礼書き忘れてましたが、>>885の回答も、ありがとうございました。助かりました。
0889デフォルトの名無しさん
2011/09/26(月) 23:50:58.05インタプリタですぐに試せよ。
0890デフォルトの名無しさん
2011/09/27(火) 00:27:40.44的外れな批判する前にちゃんと読めよ。
試したらできたけど、勘違いしてたから妥当な動作に思えなくて、
規格で決められた動作なのか質問したんだろ?
0891デフォルトの名無しさん
2011/09/27(火) 07:54:45.58って何する奴なの?
0892デフォルトの名無しさん
2011/09/27(火) 08:01:06.840893デフォルトの名無しさん
2011/09/27(火) 08:09:38.08答をもらったらグダグダの日本語で弁解してないで失せろ
自前の脳に雑音大杉なのは割と誰でもあることだが
そのまま書いちゃう癖は改めた方がいいぞ
0894デフォルトの名無しさん
2011/09/27(火) 08:27:07.83ってあるから>>886はその説明でしょ。
つか、なんで>>890に難癖つけてるのか分からん。誰にでも偉そうにしたいお年頃の子?
0895デフォルトの名無しさん
2011/09/27(火) 08:33:05.270896デフォルトの名無しさん
2011/09/27(火) 12:02:43.47On Lispの作者だっけ?
0897デフォルトの名無しさん
2011/09/27(火) 12:21:08.96書いたのは以前のバージョンの彼であり、その彼もまた、さらに前の彼によってLispで書かれていた。」
http://www.aoky.net/articles/leon_bambrick/lisp_truth.htm
これとは違う?
0898SCHEME餃子 ◆8X2XSCHEME
2011/09/27(火) 13:01:31.34CL と Scheme で単に書き方が違うだけと言えばそうなんだけど、
その書き方の違いが全体の構成の仕方に影響している部分もあると思う。
例えて言うなら、文章の構成の仕方って起承転結が基本だけど、
日本語以外では必ずしもそれが普通ってわけではない。
英語に翻訳するときには単に英語にしたらやっぱり不自然さが残っちゃうよね。
念のため言っておくけど、
これは Scheme 使いに On Lisp が役に立たないと言いたいわけじゃないよ。
本質的でない違いが重要じゃないかというとそんなこともないんじゃないかなぁという感想。
違いを意識してよむと良い知見が得られるんじゃないかと思う。
あと、マクロのシステムごとの能力の差もちょっとはある。
CL風のマクロの限界についての記述は↓が参考になる。
http://blog.practical-scheme.net/shiro/20100425-scheme-macro
0899デフォルトの名無しさん
2011/09/27(火) 13:07:09.95さすがに自分で言ったりはしないだろ……
0900デフォルトの名無しさん
2011/09/27(火) 13:08:02.290901デフォルトの名無しさん
2011/09/27(火) 14:49:07.39時々挙動が違うんだよなあ
0902デフォルトの名無しさん
2011/09/27(火) 16:25:19.47え、どこにあるの? 使ってみたい。
0904デフォルトの名無しさん
2011/09/28(水) 00:55:22.14その内容だと>>881と何も食い違わないんだが、何故俺に言う。
あと、できればもっと具体的に頼む。流石に抽象的過ぎて反応できない。
ちなみに、リンク先のは、名前衝突がCLで完全に回避できないって話だから、
マクロの限界って表現には違和感があるな。Shiroさんも何度か言ってるけど、
CLではclパッケージのシンボルを普通束縛しないし、主要処理系では警告される。
実際には問題にならないことを限界って言うのは違和感があるよ。
0905SCHEME餃子 ◆8X2XSCHEME
2011/09/28(水) 07:37:51.91> その内容だと>>881と何も食い違わないんだが、何故俺に言う。
私が書いているのは「本質的に同じだから無駄にならない」じゃなくて、「本質的じゃない部分の違いも面白い」って話。
特に反論のつもりではないよ。 >>881 を発展させる形で書いたつもりだからアンカーつけたってだけ。
> 実際には問題にならないことを限界って言うのは違和感があるよ。
「本質的には同じ」ということだったので 「(処理系レベルの裁量ではない) 理屈の上での差はある」 ということを示したんだけど…。
0906デフォルトの名無しさん
2011/09/28(水) 09:53:33.31伝統的なマクロも、衛生的な低レベルマクロも、式をリストとして組み立てて、
という本質的な流れが同じじゃないの、というのが>>881の要旨なので、
別に機能的に同等だという主張じゃないよ。曖昧な表現だったなら悪かった。
リスト作ってそれを返すだけのお仕事に、そう違いはあるめえよ、という話。
その上で、そっちの本質的ってのはどういう意味で言ってるのか知りたい。
マクロのレイヤで不自然さとか知見とか言われても、正直ピンと来ない。
単に、SchemeとCLの構成要素からくるスタイルの違いじゃなくて?
その辺が一番面白い所だと思うから、できれば具体的に教えて欲しい。
0907デフォルトの名無しさん
2011/09/28(水) 10:41:53.86それのような話か?
0908デフォルトの名無しさん
2011/09/28(水) 10:58:12.72プレゼンが面白いという意味で
0909デフォルトの名無しさん
2011/09/28(水) 11:45:13.98xmlのフェーズするのとか移植されてるじゃない
0910デフォルトの名無しさん
2011/09/28(水) 12:00:44.97何これ
0911デフォルトの名無しさん
2011/09/28(水) 13:52:10.66ssaxとかsxpathのこと? あれはRacket発祥じゃなくて、もともとSchemeポータブル
な実装があったのを、Racket (PLT)とGaucheがそれぞれ別個に移植したもの。
Gaucheが取り込んだ後で本家がバージョン更新してるんで、違いはそのせいかもね。
0912デフォルトの名無しさん
2011/09/28(水) 16:17:55.41「Scheme」でググってるのに「スキーマ」までヒットするのは
小さな親切大きなお世話だと思うんだ
0913SCHEME餃子 ◆8X2XSCHEME
2011/09/28(水) 16:50:33.46> その上で、そっちの本質的ってのはどういう意味で言ってるのか知りたい。
運用や実装を除いた言語仕様として出来ること、くらいの意味かな。
> リスト作ってそれを返すだけのお仕事に、そう違いはあるめえよ、という話。
私もそう思ってる。 そこでは認識の差は無いと思う。
「本質的」というのを上のような解釈で考えていたので、
強いて厳密に言えば差があるというくらいの意味で shiro さんの記事を示した。
> 単に、SchemeとCLの構成要素からくるスタイルの違いじゃなくて?
> その辺が一番面白い所だと思うから、できれば具体的に教えて欲しい。
私は CL はあんまりしらないし、伝統的マクロってのをほとんど使ったこと無いんだわ。
具体的に想定してたものがあるわけじゃない。
でも、なんかさぁ、文化の違いみたいなのはあるでしょ?
むしろ私も知りたいから話を振った感じ。 なんか無い?
0914デフォルトの名無しさん
2011/09/28(水) 16:59:15.90最近のGoogle先生はちょっとお節介すぎる気がするな。
単語の前に+を付けるか、""でくくると同義語検索を抑制できる。
検索結果ページの下にある「ご意見をお寄せください」から
「これとこれを同義語にするのは好ましくない」とか理由つきで書いておくと
しばらくすると改善されることもある。
話が逸れるけど、syntax-case (と言うか R6RS のマクロ) と CL のマクロは
健全性を別にしたら基本的に出来ることは同じって思っていい?
CL では書けるけど R6RS では書けないとかその逆とかってある?
0916デフォルトの名無しさん
2011/09/29(木) 01:00:46.36そんな面倒なこといつもやってるの?
0917デフォルトの名無しさん
2011/09/29(木) 11:41:39.08細かいこと気にしなきゃほぼ同じ。
>>911
SGMLが操作言語としてSchemeを採用していたから、
その流れでXML系のライブラリはポータブルなのを含めてたくさんあったね。
0918デフォルトの名無しさん
2011/09/29(木) 15:06:55.510919デフォルトの名無しさん
2011/09/29(木) 15:46:45.410920SCHEME餃子 ◆8X2XSCHEME
2011/09/29(木) 18:05:35.90一応は JIS 化されたんだから、業界ではそれなりの期待があったんだろうになぁ。
0921SCHEME餃子 ◆8X2XSCHEME
2011/10/02(日) 10:14:55.79CL は全然知らないけどググって情報を集めながら↓の移植を試みた。
http://d.hatena.ne.jp/SaitoAtsushi/20090812/1250080462
(defmacro let/scope (scope-name &body body &environment env)
`(macrolet ((,scope-name (&body body)
(macroexpand (cons 'progn body) ,env)))
,@body))
Clozure CL で試してるんだけど、期待通りに動作しないし、そもそも env に nil が入ってる。
environment の扱いがオカシイ?
nil じゃなかったとしても外部表現を持たないようなオブジェクトを unquote するのもマズイかな。
CL については初心者以前なのでかなり変なことやってるかもしれない。
どう書くべきなのか CLer に解説して欲しい。
そもそも CLer はこういう実用に無意味なものは書かないのかもしれないけど。
CL のマクロは explicit renaming に似てると言えば似てるかもと思ったけど、
識別子が情報を持ってるんじゃなくて展開器に情報を与えるってところで全然違うね。
0922デフォルトの名無しさん
2011/10/03(月) 01:36:54.48(string-append 関数)で文字列を結合したいのですが、
関数の戻り値がlist e.g.'("suwa" "kero")なので拒絶されてしまいます。
listを展開させるために,@を使って
‘(string-append ,@(関数))
としましたが、今度はstring-appendが動きません。
都合良く展開させる方法はありませんか?
0923922
2011/10/03(月) 01:53:15.16(eval ‘(string-append ,@(関数)))
で無事動作しました。
失礼しました。
0924デフォルトの名無しさん
2011/10/03(月) 02:44:36.550925デフォルトの名無しさん
2011/10/03(月) 04:26:57.530926デフォルトの名無しさん
2011/10/03(月) 08:34:11.38検索しても移植したものがみつかりません
on lisp のmatchは何か違うし
探し方がたりないのでしょうか
0927デフォルトの名無しさん
2011/10/03(月) 11:26:49.36deley->lazy みたいな入れ替えで速くする方法ないのでしょうか
0928デフォルトの名無しさん
2011/10/03(月) 12:33:16.55から遅くなるでしょう。
CPS変換はコンパイラの中間表現と考えて、最後には不要なクロージャを消去して命令列
として出力するのが良いんじゃないかと。
0929デフォルトの名無しさん
2011/10/03(月) 15:43:45.200930デフォルトの名無しさん
2011/10/03(月) 15:48:47.72つかってるSchemeの実装名とMySQLあたりでググれば?
0931デフォルトの名無しさん
2011/10/03(月) 16:04:23.03ありがとうございました!
"Scheme MySQL"で検索していたので全くヒットせず困っていました。
実装名で検索するのは思い付きませんでした。
0932デフォルトの名無しさん
2011/10/04(火) 10:07:18.80日付関係は (use srfi-19) ! ベクタライブラリなら (use srfi-43) !
素人目にはどうかしてる命名だと思うのですが、こんなの一々覚えるものなのでしょうか?
--------------
http://www.atmarkit.co.jp/fcoding/articles/gauche/02/gauche02d.html
Gaucheでプログラミング
まず、指定された日の曜日を求める関数を作りましょう。Gaucheユーザーリファレンスの「10.10 srfi-19 - 時間のデータ型と手続き」に日付を扱う関数があります。
gosh> (use srfi-19)
#<undef>
gosh> (current-date)
#<date 2008/12/07 19:20:39.922021000 (32400)>
gosh> (date-week-day (current-date))
0
SRFI(サーフィ)というのはScheme Requests for Implementationの略で、Schemeの実質的な標準ライブラリの仕様です。云々
http://practical-scheme.net/gauche/man/gauche-refj_105.html
--------------
0933デフォルトの名無しさん
2011/10/04(火) 10:35:58.630934デフォルトの名無しさん
2011/10/04(火) 10:40:53.12名前で管理してても「Nokogiri」とか、名前からじゃ何がなんだかわからん名前を付ける
奴がいたり、「cgi」という特等席の名前が基本設計が古すぎるライブラリに占有されたり、
どうかしてると言いたい事態はどっちにしろ起きるもんだ。
0935デフォルトの名無しさん
2011/10/04(火) 10:48:36.11全部覚えてる人はさすがにいないと思うが、ネットワーク関係プログラミング
してる人なら主要なRFCは番号で覚えちゃうくらい何度も参照するでしょ?
それと同じかな。
srfiはさらに、似た機能で別々の規格が出てくる可能性があるから (例えばsrfi-0
とsrfi-7)、安易に名前をつけられないんだよ。
0936デフォルトの名無しさん
2011/10/04(火) 11:26:33.030937デフォルトの名無しさん
2011/10/04(火) 11:35:13.91Gaucheをほとんど使っていないからくわしくないけど。
0938デフォルトの名無しさん
2011/10/04(火) 11:45:29.732549と4824ぐらいしか覚えてないや
0939SCHEME餃子 ◆8X2XSCHEME
2011/10/04(火) 12:42:35.18それとも >>921 はあまりにアホすぎてスルーされたのだろうか。
>>932
覚えにくいという意見はもちろん今までに出てないわけではない。
srfi の各ライブラリに名前付けようぜーっていう話は srfi-97 にある。
http://srfi.schemers.org/srfi-97/srfi-97.html
Gauche は srfi-97 を採用してないけど。
私は覚えずに毎回ドキュメントを見てる。
0940932
2011/10/04(火) 14:06:08.000941デフォルトの名無しさん
2011/10/04(火) 14:51:58.340942デフォルトの名無しさん
2011/10/04(火) 20:09:48.99schemeわかんないし、リンク先の文書もよくわかんないけど、2つ目の引用から
察するにanaphoricなマクロなんでは?
あってるなら、OnLispとLOLに詳しくかいてある
0943942
2011/10/04(火) 20:20:58.40私では力不足なので、他の方のレスを期待してください
0944デフォルトの名無しさん
2011/10/04(火) 20:24:39.77違う。anaphoricなマクロでも、(aif ... (aif ... it)) とネストすると内側の
itは内側のaifが束縛するものになるっしょ。外側のaifが束縛してるitを
内側から参照したかったらどうするの? みたいな話。aifに限った話でなく、
letによる明示的束縛でもいいんだけど。
俺はCLで実現するにはcode walker書いてローカル束縛をリネームするくらいしか思いつかん。
defmacro/macroexpandのenvはローカルなマクロ束縛(macrolet)を考慮するためのもんで、
レキシカルな束縛の情報は入ってないはず。(macroletした名前がさらにlabelsでシャドウされてたら
その情報は除かれるけど)
0945デフォルトの名無しさん
2011/10/04(火) 20:34:35.90とは違うの?
0946デフォルトの名無しさん
2011/10/05(水) 01:41:50.93なんだよNokogiri って!w って思ったら、実在するのか…('д';)
0947デフォルトの名無しさん
2011/10/05(水) 02:17:43.56<
<
<
をノコギリの刃に見立ててnokogiriってつけられたんだよ
と妄想
0948デフォルトの名無しさん
2011/10/05(水) 05:10:40.68変数は最適化で消えてもいいだろう…明示的に束縛しない限り。で、どうせ明示するなら
必要なら↓みたいに変数名を明示して macro 内でlet 束縛しなおすなぁ。ポータブルだし。
(let ((x 1))
(let/scope (x) s1
(let ((x 2))
(let/scpde (x) s2
(let ((x 3))
(list (s1 x) (s2 x) x))))))
0949デフォルトの名無しさん
2011/10/05(水) 05:36:29.17それCLで出来る? 参照だけなら簡単だけど、ネタ元のSchemeマクロと同等にするなら
内側で (setq (s1 x) 3) とすると外側のxが変更されないとならないんじゃないかと。
もちろん、let/scopeがその内側にあるletなどを全部調べて重なる変数名を
リネームすればいいわけだが。もっと簡単な方法はあるかな。
0950949
2011/10/05(水) 05:48:32.22setfマクロを作っとけばできるような気がしてきた。
0951デフォルトの名無しさん
2011/10/05(水) 06:01:04.24おれも探したけど見つけられず、結局自分で書いた>match
でもバグだらけだw
0952デフォルトの名無しさん
2011/10/05(水) 06:54:05.21Schemeは良く知らないが、変数のスコープを曲げてるんだろ?
結局、CLでは変数名はただの「名前」であって、lexical bindingと組み合わせて
変数が参照されるだけ。同名の名前がきたら、外側のはshadowされる。外側の変数をポータブルにズバリを示す方法はないと思う。
別にSchemeより低機能でもいい。俺はシンプルなCLが好み。
必要なら「スコープを曲げる」より外側のスコープの変数へのgetter/setterを定義しとくし。
0953デフォルトの名無しさん
2011/10/05(水) 07:55:30.120954デフォルトの名無しさん
2011/10/05(水) 19:05:21.77どこかにわかりやすい教科書ないの
0955デフォルトの名無しさん
2011/10/05(水) 20:50:07.40数理論理学の本は文系の棚においてある
0956デフォルトの名無しさん
2011/10/05(水) 21:46:37.620957デフォルトの名無しさん
2011/10/05(水) 21:59:06.78分数みたいな記号あるじゃないですか
G |- a ↓b
------------
G|- ¥forall a
みたいなの。これの読み方がいまひとつ分からない
0958デフォルトの名無しさん
2011/10/05(水) 22:31:13.02G |- a ↓ b から G |- \forall a を導ける
と読んでいた。
0959デフォルトの名無しさん
2011/10/06(木) 07:15:45.01はい
http://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E6%BC%94%E7%B9%B9
0960デフォルトの名無しさん
2011/10/06(木) 10:48:46.59http://hibari.2ch.net/test/read.cgi/tech/1312203564/338
0961デフォルトの名無しさん
2011/10/06(木) 18:21:14.82こう言う場合はコードウォークするだろうね
macroexpand-allを使って楽するとこんな感じ
#+sbcl
(use-package :sb-cltl2)
(defmacro let/scope (name &body body)
(let (gsym-sym-list)
(declare (special gsym-sym-list))
(let ((form (macroexpand-all
`(macrolet ((,name (sym)
(declare (special gsym-sym-list))
(let ((pair (list (gensym) sym)))
(push pair gsym-sym-list)
(car pair))))
,@body))))
(let ((bindings gsym-sym-list))
`(let ,bindings
#+sbcl
,@(cddr form)
#+ccl
,form
)))))
0962デフォルトの名無しさん
2011/10/06(木) 19:55:56.75(defmacro capture ((&rest vars) env &body body)
(let (($bindings (mapcar (lambda (x) (cons x (gensym))) vars))
($var (gensym)))
`(flet ,(mapcar (lambda (x) (list (cdr x) () (car x))) $bindings)
(flet ,(mapcar (lambda (x) `((setf ,(cdr x)) (value) (setf ,(car x) value))) $bindings)
(macrolet ((,env (var)
(let ((binding (assoc var ',$bindings)))
(list (cdr binding)))))
,@body)))))
(let ((x 1)) (capture (x) s1 (let ((x 3)) (princ (list (s1 x) x)) (setf (s1 x) 10))) x)
=> (1 3) 10
0963デフォルトの名無しさん
2011/10/06(木) 19:59:18.250964デフォルトの名無しさん
2011/10/07(金) 02:15:10.62> 豆知識:
> 数理論理学の本は文系の棚においてある
哲学の論理学じゃなくてちゃんとした数理論理学の教科書ならば
少なくともマトモな大手書店ならば数学書の棚に並んでいる。
0965デフォルトの名無しさん
2011/10/07(金) 04:05:15.34何を持ってして「ちゃんとした数理論理学の教科書」と呼ぶのかはわからんけど
記号論理の基礎が書いてあるような本だったら、言語学関連の棚付近が一番多いよ
そこから一歩進んだ内容だと計算機科学の棚
数学関連の棚に並んでる本はかなり少ない
0966デフォルトの名無しさん
2011/10/07(金) 05:07:43.43嘘だろ
0967デフォルトの名無しさん
2011/10/07(金) 07:31:05.52今は数学の棚がひどいことになってるのかな
0968デフォルトの名無しさん
2011/10/07(金) 08:09:49.05分かれている。
0969デフォルトの名無しさん
2011/10/07(金) 08:13:01.03図書館も同様だろうけれど、日本十進分類法などで分類されている分、
図書館の棚のほうが議論しやすいか?
0970デフォルトの名無しさん
2011/10/07(金) 08:30:37.59数学の本が別の所にあっても別に驚かない
0971SCHEME餃子 ◆8X2XSCHEME
2011/10/07(金) 10:06:21.46司書を含む専門の図書館職員が何人もいたのに…。
0972デフォルトの名無しさん
2011/10/07(金) 10:12:58.560973デフォルトの名無しさん
2011/10/07(金) 10:40:49.810974デフォルトの名無しさん
2011/10/07(金) 13:25:25.02数理論理学の基礎を作った人らに関する書籍も、こっち方面に置かれてるわけだし
0975デフォルトの名無しさん
2011/10/07(金) 20:09:42.64素朴な論理学も言語学の一種でいいと思ってしまうかも。
0976デフォルトの名無しさん
2011/10/07(金) 21:16:25.330977SCHEME餃子 ◆8X2XSCHEME
2011/10/07(金) 21:25:35.73最適化まで含めたらだいたい近い結果になりそうだね。
でも、そういう操作って他のマクロとのコンボでわけわかんない事態になりそうでちょっと怖い。
ところで syntax-rules を CL で再現するパッケージ見付けた。
http://www.ccs.neu.edu/home/dorai/mbe/mbe-lsp.html
どの程度ハイジニックを実現できてるかイジめてみよっと。
0978デフォルトの名無しさん
2011/10/08(土) 12:10:36.960979デフォルトの名無しさん
2011/10/08(土) 12:14:02.250980デフォルトの名無しさん
2011/10/09(日) 14:33:53.770981デフォルトの名無しさん
2011/10/09(日) 17:31:53.640982デフォルトの名無しさん
2011/10/09(日) 17:59:05.01http://hibari.2ch.net/test/read.cgi/tech/1318150738/
0983デフォルトの名無しさん
2011/10/09(日) 18:45:47.230984デフォルトの名無しさん
2011/10/09(日) 23:08:46.48乙です。
埋めつつ。
おれquicklispには非常に期待してるんだ。ネイティブコンパイラのある言語で、
ああいうライブラリ管理がある言語って、実は少ないんじゃないかしら。
SRFIにもquicklispみたいな仕組みあると良いよね。
0985デフォルトの名無しさん
2011/10/10(月) 13:19:23.39レス数が950を超えています。1000を超えると書き込みができなくなります。