Lisp Scheme Part33
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/10/09(日) 17:58:58.06■前スレ
Lisp Scheme Part32
http://hibari.2ch.net/test/read.cgi/tech/1303299696/
■テンプレ
http://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その8【質問よろず】
http://hibari.2ch.net/test/read.cgi/tech/1309940115/
0002デフォルトの名無しさん
2011/10/09(日) 18:00:51.76おつおつ
0003デフォルトの名無しさん
2011/10/09(日) 23:25:08.72> おれquicklispには非常に期待してるんだ。ネイティブコンパイラのある言語で、
> ああいうライブラリ管理がある言語って、実は少ないんじゃないかしら。
どういうこと?
機能としてのadsfとの違いがわからない。
quicklispの方がインストールできる率が高いぐらいの認識だわ。
Linuxディストリのパッケージ管理ソフトのapt系やyum系やemerge系やArchLinuxのpacman(yaourt)系みたいなことってadsfでできないの?
Perlとかはどうなん?
0004SCHEME餃子 ◆8X2XSCHEME
2011/10/10(月) 00:05:26.51Scheme だと
http://home.gna.org/dorodango/
http://snow.iro.umontreal.ca/
あたりがそれなりに使えるかな。
使ったこと無いけど。
Checken Scheme だけの話なら egg があるし。
http://wiki.call-cc.org/chicken-projects/egg-index-4.html
そういや higepon 氏の言ってた SPON ってどうなったんだろ。
http://wiki.monaos.org/pukiwiki.php?R6RS%2F%BD%B8%C0%D1%BD%EA%2F%A5%A2%A5%A4%A5%C7%A5%A2
0005デフォルトの名無しさん
2011/10/10(月) 02:09:04.89パッケージ管理で気に入ってるのはLeiningenのclojarsリポジトリかな
もの凄く楽
0006デフォルトの名無しさん
2011/10/10(月) 09:14:13.99quicklispは依存するライブラリをリポジトリからネットワーク経由して勝手に取ってくるよ。
(要はyumとかaptみたいに)
asdfってそんなことできたっけ?
0007デフォルトの名無しさん
2011/10/10(月) 12:57:52.63それはさすがにできる。
検索機能があったかは、ようわからん。
というか、他の仕事でSBCLを触れていなくて、どんどん忘れていく。
作りたいもの、いっぱいあるのになあ。
0008デフォルトの名無しさん
2011/10/10(月) 14:54:53.330009デフォルトの名無しさん
2011/10/11(火) 19:33:47.110010デフォルトの名無しさん
2011/10/11(火) 19:45:32.630011デフォルトの名無しさん
2011/10/11(火) 20:36:23.210012デフォルトの名無しさん
2011/10/11(火) 20:49:06.85今は Typed Racket になってるみたいだな。
http://docs.racket-lang.org/ts-guide/index.html
Racket は敬遠してたけど、ちょっと手を出してみる。
0013デフォルトの名無しさん
2011/10/12(水) 01:35:30.13KawaいいよKawa
0014デフォルトの名無しさん
2011/10/12(水) 01:58:11.38へー、Type Inference(型推論)がある。暗黙変換あるのかな。
0015デフォルトの名無しさん
2011/10/14(金) 19:12:51.52(list a b)
でなくて
(values a b)
にした方が便利な場合ってのが重いつかない
values って何のためにあるの?
0016デフォルトの名無しさん
2011/10/14(金) 19:20:18.20http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E5%A4%9A%E5%80%A4
0017デフォルトの名無しさん
2011/10/14(金) 19:32:10.44卑近な例だと整数の除算とかだと便利
CLだとtruncate
0018デフォルトの名無しさん
2011/10/14(金) 19:40:14.29ハッシュを扱った例を調べてみな。nilがデータ内のnilかデータ内で無いことを
返すためのnilかで使われとる。
たちを扱えるようになってきたら初級から脱却ぢょ。
0019デフォルトの名無しさん
2011/10/14(金) 21:41:44.000020デフォルトの名無しさん
2011/10/15(土) 00:32:43.06だから明示的にリストにして返すよりメモリ消費が少ない。
だからリフティングにも便利。
0021デフォルトの名無しさん
2011/10/15(土) 02:13:36.59ちょっと遅い反応だけど。
多分、ASDF-Installと混同してる。ASDFはファイル間での依存関係を定義したり、
ロードやコンパイルの手順を統一するための枠組み。makeとかに該当する。
そのASDFの枠組みに乗っかって、ライブラリの導入を自動化するのが、
ASDF-InstallやQuicklisp。こちらはCPANやRubyGemsとかと同じ層の枠組み。
ライブラリの自動ダウンロードや検索をするのはこっち。
0022デフォルトの名無しさん
2011/10/15(土) 03:01:38.28性能が必要なとき、コンシングを避けるために使える。
>>16のリンク先にもあるけど、意味論上の理由を無視すれば、
単に性能への要求が全て。同じことは大体はリストでもできる。
Schemeでの(values)とかの例外を除いて。
多値にあまり必要性を感じない人は結構いて、Gerald Jay Sussmanなんかは
ttp://trac.sacrideo.us/wg/wiki/WG1Ballot1Results
> It is important to allow multiple values that can result in multiple definitions
> and assignments, but it is not apparent to me why we need a special data
> type to implement them.
って言ってる。
0023デフォルトの名無しさん
2011/10/15(土) 03:43:18.97わざわざ特殊なものを積極的に使う理由にはならないなあ
>>18の例にしてもnilと区別したいならノードを返すとか他にいくらでも方法はあるわけで
0024デフォルトの名無しさん
2011/10/15(土) 05:45:53.17変数に束縛する場合はdestructuring-bindとかパターンマッチが使えるが、
最初の値だけそのまま他の関数に渡したい場合などは一手間余分にかかるし。
それから、APIの互換性を保ったまま後付けで余分な値を返すようにできるのは
仕事でコード書いてると重宝する。単独の値→構造体へと戻り値を変更したら
呼び出してるところ変えて回らないとならないからなあ。
Schemeの多値は二番目以降の値を無視するような使い方ができないので
性能上の要求以外で使うメリットはあまり感じないが。
0025デフォルトの名無しさん
2011/10/15(土) 08:20:06.53たまに、一部の値を返し忘れてるのをnilにされちゃって、バグの原因に気付けずに頭がおかしくなって死ぬ。
0026デフォルトの名無しさん
2011/10/15(土) 10:18:16.19特殊かなぁ? 謎だ。Haskellのように、Maybe/Eitherを定義すればできるけど
0027デフォルトの名無しさん
2011/10/15(土) 11:11:16.05「わざわざ××でなくても○○でいい」という主張は説得力に欠けると思う。
××と○○のどちらに重みを置くかで簡単に逆転するもの。
実際、「わざわざ多値でなくても構造体でいい」という主張に対して >>24 は「わざわざ構造体を使うより多値」って反論だろう。
だけどこの反論は「手間」に焦点をあてて重みを具体的に主張してるのでそれなりに説得力がある。
こういうときには構造体の方が手間が小さいとか、こういうときは手間をかけてもなお構造体の方がいいとか、
「多値を使う理由がない」よりも「構造体を使う理由がある」で主張してくれた方が良い議論になりそうな気がする。
0028デフォルトの名無しさん
2011/10/15(土) 14:27:36.16多値で返す値は順番に依存してるのが良くないんだよ
構造体は名前を使えるぶん間違いが少ないし順序を変えたりするのも楽
それとSchemeで性能とか言われても説得力がない
構造体返しても最適化のレヴェルはほぼ同じだし
どうすかね
0029デフォルトの名無しさん
2011/10/15(土) 15:59:30.790030デフォルトの名無しさん
2011/10/15(土) 17:11:17.71構造体はそれ1つを知ってればいいが、
多値は関数それぞれが何を返すのか知ってないといけないのに加えて、
その順番には何の根拠もないから仕様変更に弱い
後で何か付け足す場合とか考えないのかな?
普通に考えれば積極的に使う物ではないという判断に至ると思う
0031デフォルトの名無しさん
2011/10/15(土) 17:15:52.57関数引数にも言える事だけど
0032デフォルトの名無しさん
2011/10/15(土) 17:21:13.23呼び出し側のインターフェースで引数を強制してるからだけどね
可変長引数の使いにくさを見れば多値がいかに迂闊なインターフェースか判ると思う
0033デフォルトの名無しさん
2011/10/15(土) 17:46:07.45例外受け取っても何が入ってるか判らんとか
R6RS以降追ってないけど
0034デフォルトの名無しさん
2011/10/15(土) 17:46:34.57数学の世界を名前付き引数に改革しようぜ!
0035デフォルトの名無しさん
2011/10/15(土) 18:01:15.40result => 1
(ref-values result 0) => 1
(ref-values result 1) => 2
(ref-values result 2) => 3
とかw
嫌んなっちゃうな
0036デフォルトの名無しさん
2011/10/15(土) 18:03:24.200037デフォルトの名無しさん
2011/10/15(土) 18:06:35.960038デフォルトの名無しさん
2011/10/15(土) 18:50:21.53何でdestructuringするマクロ使わんのだ。
単にreceiveとかcall-with-valuesの下でリストやベクタ、
構造体を使えば良いだけで、他からは隠蔽できる。
この辺の話は全部>>16と参照元に書いてるよ。
0039デフォルトの名無しさん
2011/10/15(土) 19:18:18.53「Schemeで性能と言っても説得力がない」と言われちゃうと
Schemeで準リアルタイムシステム書いてる自分の立つ瀬がないんだが。
構造体を作って返すと、最適化でアロケーションを消してもらうのは大変で、
Stalinみたいに全プログラム解析をやるハメになる。多値なら
アロケーションが起きないことが(使ってる処理系で)保証される。
最近GCの性能は上がってるとはいえ、no consingで書くのはバカにならないよ。
そんなコードをSchemeでわざわざ書くな、と言われたらサーセンとしか言えないが。
0040デフォルトの名無しさん
2011/10/15(土) 19:22:02.14Schemeでの性能の話に説得力がないとか言われてもなー。
現実で業務とかに使ってる人もいるし、StalinとかはCLの処理系と戦えると思うけど。
それと、構造体を現状の多値の代わりに、というのは色々問題出ると思う。
少なくとも、返す側の関数単体じゃそれが多値の代用として使われるかどうか判断できないから、
Lisp語族で当たり前に行われる、インタラクティブにコンパイルする場合、最適化できないよね?
この辺は自分は詳しくはないので、解決する方法はあるのかもしれないけど。
現実的な(将来コンパイラが十分に賢くなったら、とかでなく)範囲であるなら教えて欲しい。
0041デフォルトの名無しさん
2011/10/15(土) 19:32:30.73あと、要素の追加や削除が将来的に起きそうな場所を抽象化するのは当然で、
どこで多値を使うかはケースバイケースだと思う。>>30は極論に見える。
関数の引数と同じで、固定できる部分は複数の値で、他は抽象化されたものを。
そんなにおかしい話かな?
0042デフォルトの名無しさん
2011/10/15(土) 19:58:36.30そのうちGCされる、って理解で正しい?
0043デフォルトの名無しさん
2011/10/15(土) 20:01:41.48CLの場合だとスタックに戻されるような実装(コンパイラ)が多数を占めてるからGC対象ですらない。
0044デフォルトの名無しさん
2011/10/15(土) 21:12:49.10効率重視なら多値なんて使わない方がいいけどな
0045デフォルトの名無しさん
2011/10/15(土) 21:18:53.430046デフォルトの名無しさん
2011/10/15(土) 21:37:39.88オブジェクトをコピーしないといけないから、副作用を伴わない多値のが効率が良いこともあると思うよ。
0047デフォルトの名無しさん
2011/10/15(土) 21:42:48.510048デフォルトの名無しさん
2011/10/16(日) 02:23:55.43デバッグ用途(イミディエイト機能のような)に使いたいのですが、
例を教えていただけませんか。
いまいちcall/ccを使うタイミングがわからないのです
0049デフォルトの名無しさん
2011/10/16(日) 08:48:09.05イミディエイト機能って何? ググってもわからなんだ。
Chez Scheme とかではエラーのときにデバッグモードになるけど、あんな感じのこと?
汎用的に作るのは難しいか出来ないと思うけど、とりあえず使用例みたいなので目的とするところを示してくれんか。
0050デフォルトの名無しさん
2011/10/16(日) 11:24:47.21ベクターを操作する巨大な関数です。
一ループごとに文字列を読み込み、見合った操作をして文字列の先頭を削り再帰します。
(define interprit
(lambda (program memory offset)
(cond
((eqv? programの先頭 #\a) 処理)
...
)
;*ここで脱出*
(interprit 削ったprogram memory offset)
)
)
ループする毎に継続をset!して脱出し、
処理を確認したら戻りたいです
0051デフォルトの名無しさん
2011/10/16(日) 12:18:26.79「処理を確認」をもう少し詳しく。
なんとなく、ブレークポイントを設定してローカルな変数を見たいのかな、
とか思うんだけど、どうなんだろう。
0052デフォルトの名無しさん
2011/10/16(日) 13:40:15.08大域変数を確認したいです。
0053デフォルトの名無しさん
2011/10/16(日) 14:31:14.00作って、ひとつの関数から、cond条件わけの関数とそれぞれの関数に分けて作った
ほうが最初はいいよ。そのほうが読みやすくなるので。
何もかも一つでやらそうとするのはあまりいい傾向だとは思えない。
0054SCHEME餃子 ◆8X2XSCHEME
2011/10/16(日) 15:49:08.11その処理を一般化すると「ループからジェネレータへの変換」と考えられる。
これがそのまま使えると思う。
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3agenerator%E3%81%A8do%E3%81%A8while#H-3put3dsr6wpqj
call/cc を使う典型的な例なので call/cc の解説の中では似たようなコードはよくある。
限定継続を提供している処理系ならともっと簡単に書ける。
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3a%E9%83%A8%E5%88%86%E7%B6%99%E7%B6%9A%3a%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3%81%AE%E5%8F%8D%E8%BB%A2
そういや限定継続って規格に入ってないし、 srfi にもなってないっぽいなぁ。
racket には shit と reset だけじゃなくていくつかのバリエーションがあるみたいだね。
0055デフォルトの名無しさん
2011/10/16(日) 22:34:38.91くわしくありがとうございました。
0056デフォルトの名無しさん
2011/10/16(日) 23:05:42.50call/ccとdelayを用いてpromiseを返却し、逐一動作が出来ました。
0057デフォルトの名無しさん
2011/10/17(月) 01:32:57.33できるだけ使うように心がけるかな
0058デフォルトの名無しさん
2011/10/18(火) 11:18:56.17糞コテは巣に帰れ
0059デフォルトの名無しさん
2011/10/18(火) 17:32:08.25SCHEME餃子の巣はやっぱSchemeスレなんじゃね?
0060デフォルトの名無しさん
2011/10/23(日) 09:16:03.190061デフォルトの名無しさん
2011/10/23(日) 10:59:49.40授業が奥乃先生と複数担当態勢だったりしたのは引き継ぎの目的もあったのかな。
最終講義のアナウンスがあるとしたら年明けかな?
0062デフォルトの名無しさん
2011/10/23(日) 11:51:45.52Shibuya.lisp TT#7の動画をニコニコ動画とYouTubeにアップしました。
http://www.nicovideo.jp/mylist/28336529
http://www.youtube.com/playlist?list=PLEAB9C327450DA7D3
0063デフォルトの名無しさん
2011/10/23(日) 14:03:45.42良かったんじゃない?
0064デフォルトの名無しさん
2011/10/23(日) 15:11:06.90あとは、相手もう運営側から手を引いてるし。
何にせよ、また出てくれたのは良かったね。
0065デフォルトの名無しさん
2011/10/23(日) 19:34:34.03ひげぽん氏の声はよく聞こえて良い。
滑舌が悪い人や、集音がイマイチなときがあったりするのはなんとかならんかな。
マイクゲインも大きすぎると雑音も拾うから骨伝導タイプのマイクを使うとか。
それと、映像はもう直接PCに繋げちゃってもいいような気がする。
0066デフォルトの名無しさん
2011/10/23(日) 21:16:06.97ズームしたり、身振りが入った説明をしてるのでカメラを振ったり、という時に
中継担当者の手間が増えるので、そのへんは微妙かも。
0067デフォルトの名無しさん
2011/10/23(日) 23:00:51.42多くは発表資料も公開してるからそっち見ながらでだいたい問題ないかもな。
0068デフォルトの名無しさん
2011/10/23(日) 23:25:29.76http://www.nicovideo.jp/watch/sm5008319
見易さ的には好ましいとは思うけど、
資料見ながら聞けば済む話ではあるからそこまでするほどのもんでもないって言えばそうだしなぁ。
0069デフォルトの名無しさん
2011/10/24(月) 01:45:38.40http://hibari.2ch.net/test/read.cgi/os/1314741952/
0070デフォルトの名無しさん
2011/10/24(月) 06:22:17.84元映像見ながらだとなんか微妙にずれるので、わずかに入っているスペースキーを叩く音とかを手がかりにしてました。
あと、音声についてはいつも悩ましくて、人により声質やマイクの持ち方が違うのでなかなか安定しません。
あまりに聞き取りづらいのは、編集時にボリューム変えてますけど、あまりやり過ぎると雑音まみれの変な音になるので悩ましいところです。
発表者の机の上にボイスレコーダを置いておいて、あとから合成するのがいいと思うけど、これもマーカーみたいなのがないと合わせるのがちょっと難しかったり。
0071デフォルトの名無しさん
2011/10/24(月) 08:23:17.050072デフォルトの名無しさん
2011/10/24(月) 08:41:33.58あれは音量の調整のミスなのか、発表者の声が大きすぎたのか。
さておき、いつも動画アップロードお疲れ様です。
0073デフォルトの名無しさん
2011/10/24(月) 10:02:52.03いや、そういう面倒な事こそLISPを活用してだな
0074デフォルトの名無しさん
2011/10/24(月) 10:23:17.45プロのアナウンサーとかじゃないんだから。
最初のAD変換で音が割れたりしてたらリカバリーのしようがないので、
そこの機材で入力レベルの調整をすればいいんだけども。
0075デフォルトの名無しさん
2011/10/24(月) 11:01:09.37・音圧拾ってレールかなんかで距離を自動調節する装置を作る
0076デフォルトの名無しさん
2011/10/24(月) 14:07:01.53PCだと難しいんかな?
0077デフォルトの名無しさん
2011/10/25(火) 00:08:48.51音割れしてたら見るのやめる程度の内容なんだから
0078デフォルトの名無しさん
2011/10/25(火) 06:29:44.080079デフォルトの名無しさん
2011/10/25(火) 06:45:30.260080デフォルトの名無しさん
2011/10/25(火) 07:57:08.33R.I.P.
0081デフォルトの名無しさん
2011/10/25(火) 08:07:00.76えええええ
0082デフォルトの名無しさん
2011/10/25(火) 08:19:07.05RIP
0083デフォルトの名無しさん
2011/10/25(火) 13:07:35.50発 者 同 . 。_ ____ 争
生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0084デフォルトの名無しさん
2011/10/25(火) 13:30:32.58http://abcl-dev.blogspot.com/2011/10/abcl-100-released.html
0085デフォルトの名無しさん
2011/10/25(火) 13:32:20.92ν速にはスレが立った。マ板はまだだが。
0086デフォルトの名無しさん
2011/10/26(水) 23:40:12.57QEPD
0087デフォルトの名無しさん
2011/10/29(土) 12:46:50.750088デフォルトの名無しさん
2011/10/29(土) 22:21:58.660089デフォルトの名無しさん
2011/10/29(土) 22:30:15.52(define-macro (bl)
'(if (> x 0 ) #t #f))
(bl)
)
(f 10)
racketでは動くけど、他の処理系ではやっちゃいけない?
0090デフォルトの名無しさん
2011/10/29(土) 22:34:59.75あんま気にしても仕方ないと思う。
0091SCHEME餃子 ◆8X2XSCHEME
2011/10/30(日) 00:28:17.17R6RS では簡単に define-macro を実装できる。
典型的な実装例はこんな感じ。
(define-syntax define-macro
(lambda (stx)
(syntax-case stx ()
((_ (macro . args) body)
#'(define-macro macro (lambda args body)))
((_ macro transformer)
#'(define-syntax macro
(lambda(stx2)
(syntax-case stx2 ()
((k args (... ...))
(let ((v (syntax->datum #'(args (... ...)))))
(datum->syntax #'k
(apply transformer v)))))))))))
これなら >>89 のようなことは問題なく出来る。
でもまぁ Scheme 的には let-syntax を使う方が楽ではあるだろうね。
0092デフォルトの名無しさん
2011/10/30(日) 00:29:23.880093デフォルトの名無しさん
2011/10/30(日) 03:34:57.41http://groups.google.com/group/plt-scheme/browse_thread/thread/a310b7cba8fae651/fa85558e8a5115bf
0094デフォルトの名無しさん
2011/10/30(日) 05:02:08.64でも `[`(,,op ,'y) あたりがうまく動いてくれない
(define (g x)
(define-macro (tmpl op) `[`(,,op ,'y) (list y ,op)])
(match x
[`(- ,z) (list z '-)]
(tmpl '+)
)
)
0095デフォルトの名無しさん
2011/10/30(日) 12:47:34.04各処理系がdefine-macroをどう実装してるかが問題なんだから、
RnRSでdefine-macroをどう実装するかはこの場合関係ないだろ。
独自の定義でオリジナルを上書きして差異を吸収するってんなら別だけど。
009694
2011/10/30(日) 13:34:27.93(define-syntax tmpl
(syntax-rules ()
((_ op)
[(list op y) (list y op)])))
(define (g x)
(match x
[`(- ,z) (list z '-)]
[(list '/ z) (list z '/)]
(tmpl '+)
[_ 'else]
)
)
(g '(/ 8))
(g '(+ 10))
(g '(- 12))
(g '(= 19))
0097デフォルトの名無しさん
2011/10/30(日) 14:12:11.24matchの仕様を見るにpat部分は普通の評価はされない場所だから
何か勘違いしてるんだろ。例えばパターンの最初の2行は
[(- z) (list z '-)]
[(/ z) (list z '/)]
でいいんじゃないかと。
tmplもそう書き直せば多分動くでしょ。
全く確認してないが。
0098デフォルトの名無しさん
2011/10/30(日) 14:13:55.83出てくるシンボルは「パターン変数」になるそうだから。仕様よく読め。
0099デフォルトの名無しさん
2011/10/30(日) 18:50:28.04かっこつけんなよ。
0100SCHEME餃子 ◆8X2XSCHEME
2011/10/30(日) 20:16:14.53そのダジャレは面白いと思って書いてんの?
煽りだろうがあえてマジレスすると、括弧そのものではなくてマクロが重要だろ。
Lisp 風のマクロを実現するためにS式表記が相性が良かったからこの表記が維持されてるってだけ。
外観ではS式の優位性ってのはそれほど無いんじゃないか?
例えば Python で構文木を操作しようと (マクロ的なことをしようと) した場合のめんどくささはこれを見ればよくわかる。
http://www.unixuser.org/~euske/doc/python/python-lisp-j.html#macros
マクロが要らないならプログラマが直接S式で書く意味はあんまり無いと思う。
見難いと感じないならデメリットも特に無いとは思うけど。
0101デフォルトの名無しさん
2011/10/30(日) 21:23:48.25どんな雑誌に投稿するのか知らないけど
0102SCHEME餃子 ◆8X2XSCHEME
2011/10/30(日) 23:31:17.46あんまりフリーダムでも困るけど、 Lisp の場合は結局はS式だから、それがちょうどいい枷にもなってる気がする。
0103デフォルトの名無しさん
2011/10/31(月) 00:16:26.42他にも、パースしやすかったり、式単位での編集を実装する目印になったり、
S式の利点は案外ある。特に、式単位で編集できないと困る人多いんじゃない?
0104SCHEME餃子 ◆8X2XSCHEME
2011/10/31(月) 00:39:19.72優先順位の問題は確かに単純になっていいところではあるなぁ。
でも、それは簡潔さとのトレードオフがあるから一概に利点とも言えないかも?
今、思い付いたんだけど、どんな関数にしろマクロにしろ特殊形式にしろ「名前が付いてる」ってのは
ドキュメント引いたり定義場所へ移動しやすいって利点はあるね。
パースしやすいってのは処理系の実装者にとってはそうかもしれないけど、ユーザーに対する利点になるかな?
データのシリアライズを write 一発で出来て、 read で読んだら構造が出来上がってるってのは楽だけど、
プログラム自体をS式で記述するってのとは別の話では?
編集が式単位っていうのは良く挙げられるけど、他の言語でも単位が違うだけで何らかの塊はあるわけで、
実際にその塊単位での編集や移動も出来るわけで、開発環境のサポート次第じゃないかな?
0105デフォルトの名無しさん
2011/10/31(月) 01:54:05.12つまり、IDE泣かせ。開きカッコの直後に、どんな候補だせばいいんだろう。
IDE使わないからどうでもいいけど。S式好きだし。
0106デフォルトの名無しさん
2011/10/31(月) 02:22:18.54インデントされていればそれがよりはっきり見えるし.
命令型のコードは,意味を成すコードの塊を抜き出すのがかったるいと感じる.
0107デフォルトの名無しさん
2011/10/31(月) 12:08:16.87文脈の探索自体は楽なんじゃないかと思うけど
問題はマクロの処理かな
マクロ内で定義したキーワードとかが候補に出ないんでは
あんまり意味がないだろうし
展開したものを逆に辿っていくのは難しい
0108デフォルトの名無しさん
2011/11/03(木) 00:28:51.31質問です。
数ページにわたるCGIがあり、POSTパラメータを渡すのですが、継続を渡せないかとかんがえています。
中途から処理を再開すれば、無駄無くプログラミング出来ると思ったからです。
Q1.継続はなんらかの形でコンテナ化して保管できますか?
Q2.継続は一度インタプリタが終了しても有効ですか?
0109デフォルトの名無しさん
2011/11/03(木) 00:34:12.310110SCHEME餃子 ◆8X2XSCHEME
2011/11/03(木) 01:01:48.77継続そのものをシリアライズするのは原則として無理です。
継続には環境フレームやら何やらがぞろぞろとくっついていて処理系の内部構造と不可分なので、
もしやろうとするなら、処理系が最初からシリアライズを強く意識した実装にする必要があります。
Gambit だと出来ますが、実用するなら不要な環境を捕捉してしまわないようにかなり注意が必要で、あまり簡単とは言えないようです。
0111デフォルトの名無しさん
2011/11/03(木) 02:21:46.20つまんない制限だよねえ
0112デフォルトの名無しさん
2011/11/03(木) 03:09:32.82openしているファイルディスクリプタだの何だのが間接的に参照されてるから
そう簡単にはいかないよ。
0113108
2011/11/03(木) 18:17:31.61そうですか…残念です。
とにかくありがとうございます。
0114デフォルトの名無しさん
2011/11/03(木) 20:03:38.360115デフォルトの名無しさん
2011/11/03(木) 21:19:02.420116デフォルトの名無しさん
2011/11/03(木) 22:41:25.160117デフォルトの名無しさん
2011/11/03(木) 23:23:33.61基本的に起動し続け、継続をシリアライズしたりする必要はないよ。
継続を活用したウェブ開発をする場合、CGIだと厳しいと思う。
0118SCHEME餃子 ◆8X2XSCHEME
2011/11/04(金) 00:23:44.47意味的な単位と表記上の単位が一致しやすいってことですね。
Lisp だと小さい単位で書きがちということもあって納得です。
0119デフォルトの名無しさん
2011/11/04(金) 03:42:10.30第一級継続先生の次回作にご期待ください
http://www.google.co.jp/search?hl=ja&q=%22delimited+control%22+scheme+filetype%3Apdf&oq=%22delimited+control%22+scheme+filetype%3Apdf
http://www.google.co.jp/search?hl=ja&q=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3+filetype%3Apdf
http://www.google.co.jp/search?hl=ja&q=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+filetype%3Apdf&oq=%22%E9%99%90%E5%AE%9A%E7%B6%99%E7%B6%9A%22+filetype%3Apdf
0120デフォルトの名無しさん
2011/11/04(金) 03:53:38.35http://www.google.co.jp/search?hl=ja&q=delimited+control+racket
http://community.schemewiki.org/?composable-continuations-tutorial
0121デフォルトの名無しさん
2011/11/04(金) 19:37:26.64地球全体をシリアライズすれば十分
0122デフォルトの名無しさん
2011/11/04(金) 21:10:14.05永続化する場合こんどはインスタンスの管理の問題があるけど
0123SCHEME餃子 ◆8X2XSCHEME
2011/11/04(金) 22:32:53.69比喩を持込むのはなるべく避けろってのは議論の基礎だろ。
もうちょっと具体的に言ってくれんか。
0124デフォルトの名無しさん
2011/11/05(土) 00:35:36.710125デフォルトの名無しさん
2011/11/05(土) 00:44:10.210126デフォルトの名無しさん
2011/11/05(土) 08:42:02.91最初から仕様にもりこんでおけば今頃は超有名になってたよ
0128デフォルトの名無しさん
2011/11/05(土) 12:59:27.300129デフォルトの名無しさん
2011/11/05(土) 13:03:13.19なんでときどきDQN口調になるんだよw
0130SCHEME餃子 ◆8X2XSCHEME
2011/11/05(土) 13:22:34.67煽らないとすぐに過疎るからだよ。
極論を書いたりするのも反論してみろっていう煽りだよ。
言わせんな恥ずかしい
0131デフォルトの名無しさん
2011/11/05(土) 14:40:38.83部分継続をシリアライズして、HTMLに埋め込むっていう、上で出てた論文は面白かった。
みんな色々考えてんだねー。
(^^)
0133デフォルトの名無しさん
2011/11/05(土) 15:36:31.64あんたがそこそこ勉強してきた人だってこと多くの人がわかってんだから
煽らんでもいいよ。それより食らいつくネタを考えたり、拾ってきたり
するといいよ。そのほうが健全なスレになる。by Lispトムヤンクン
0134デフォルトの名無しさん
2011/11/05(土) 15:49:02.65いつでも再開できるのがSchemeの常識に
0135SCHEME餃子 ◆8X2XSCHEME
2011/11/05(土) 16:07:36.48俺が勉強してたらどうして煽りが要らないんだ? 意味わかんね。
議論しようぜってのはサイエンス的にもエンジニアリング的にも民主主義的にも美徳だろ。
俺に間違いがあるってのなら、反論しろよ。 意見を出せよ。
議論自体を拒否するのは不誠実だぞ。
0136デフォルトの名無しさん
2011/11/05(土) 16:16:36.44何もわかってない奴が盛り上げよう?あるいはかまってもらおうと
する場合は煽りという選択肢を選びがちという事だよ。あなたの
場合は、その選択肢を選ばなくても他の選択肢で十分盛り上げられ
る技量を持ってるでしょと言ってるだけ。by Lispトムヤンクン
0137デフォルトの名無しさん
2011/11/05(土) 16:46:04.28最後に、餃子には期待してるよ。
0138SCHEME餃子 ◆8X2XSCHEME
2011/11/05(土) 16:53:07.53>>112 も言うようにポートのような外部とのインターフェイスだとか、
破壊的な処理だとかを考えなければ関連するデータを全部書出せばいいだけなので
いくらかの (かなり大きな「いくらか」だと思うけど) 制限有りでよければ出来そう。
というか、 Gambit 等ではやってるわけですし。
規格にするならあとはその制限をどのレベルにするのが妥当かって話ですよね。
0139SCHEME餃子 ◆8X2XSCHEME
2011/11/05(土) 17:00:05.29(let ((x 1))
(write (lambda()(set! x (+ x 1))))
(write (lambda()(set! x (+ x 2)))))
みたいにふたつのクロージャを書き出したとして、
元々は共有しているはずの x が分断されてしまうのはつまらないので、
set! したら既に書き出したクロージャにも波及したりしたら面白いとか思った。
面白いだけで使いどころがないし非現実的だけど。
無難な落とし所としてはあくまで書き出した時点の環境ってことにするしかないかなー
0140SCHEME餃子 ◆8X2XSCHEME
2011/11/05(土) 17:08:41.15かわりに --compile-imported-libraries なるオプションが出来てた。
R6RS の実行モデルに合わせて変えたってことだと思うけど、
--boot オプションはあるんだよな。 暫定的な処置ってこと?
教えてエロいひと
0141デフォルトの名無しさん
2011/11/05(土) 17:23:26.90「書き出す」っていうのは従来のファイルシステムを想定してると思うんだけど、
その想定は妥当なの? OS自体が一つのSchemeの実行イメージに載ってて、
メモリが自然に永続化されるようなモデルならそういうことも可能かもしれない
(効率との折り合いはあるけど)。Smalltalkの環境みたいな。
0142139
2011/11/05(土) 17:50:35.07>>141
非現実的ってのはそこんところですね。
出力先を特殊なデータベースとかにするのも、
言語でそこまで踏み込むのは Scheme らしくないし。
さすがにこのへんは余興というか、面白いだろうなーという妄想レベルの話です。
0143139
2011/11/05(土) 17:57:18.27書き出すこと自体については可能だと思います。
Common Lisp なんかでは実行中のイメージをダンプしたりは普通ですし、
それをクロージャに繋がってるところだけに限定するか、
無理なようなら効率を無視してまるっと書き出すとか出来るでしょう。
0144デフォルトの名無しさん
2011/11/05(土) 18:19:45.220145デフォルトの名無しさん
2011/11/05(土) 22:01:38.08一瞬サブマシンガンに空目した。
0146デフォルトの名無しさん
2011/11/05(土) 23:10:28.83ここでは、77バイト
0147デフォルトの名無しさん
2011/11/06(日) 04:30:49.03俺漏れも
0148SCHEME餃子 ◆8X2XSCHEME
2011/11/06(日) 08:55:42.40知るかボケ
にちゃんねるに何を期待してんだ?
ガキは家へ帰ってパパのチンポでもしゃぶってろ
0149デフォルトの名無しさん
2011/11/06(日) 10:45:52.49ひどいなw
これ言われたら超屈辱的だわwww
0151デフォルトの名無しさん
2011/11/06(日) 11:18:43.420152デフォルトの名無しさん
2011/11/06(日) 14:06:19.58何を言いたいのかわかんねーよ。
比喩を持込むのはなるべく避けろってのは議論の基礎だろ。
もうちょっと具体的に言ってくれんか。
148 名前:SCHEME餃子 ◆8X2XSCHEME [sage] 投稿日:2011/11/06(日) 08:55:42.40
>>136
知るかボケ
にちゃんねるに何を期待してんだ?
ガキは家へ帰ってパパのチンポでもしゃぶってろ
0153SCHEME餃子 ◆8X2XSCHEME
2011/11/06(日) 14:11:56.960154デフォルトの名無しさん
2011/11/06(日) 14:37:34.530155デフォルトの名無しさん
2011/11/07(月) 15:54:39.42悪意はある反面あなたの精神的な未熟さだけは理解できました。
By Lispトムヤンクン
0156デフォルトの名無しさん
2011/11/07(月) 16:06:06.82当事者としてはすこぶる不愉快だが、2ちゃんだからこの程度のことは書く
人がいてもおかしくはないですからね。トムヤンクン
実際に対面して同じ事を目の前で言えるような人とは思えないし、
そこまで肝がある人じゃないだろう。それができるのが2チャンです。
心理的に不安定な人という印象だけが残ってしまったのも事実なのです。
これ以上は時間を捨てるようなものであり、オフトピでもあるので
これで失礼します。
何この粘着君。
空気読まない奴だと思ったらわかった上で乱してんのか。
タチ悪いわー
0158デフォルトの名無しさん
2011/11/07(月) 20:18:07.26自己紹介してんじゃねえよ
0159デフォルトの名無しさん
2011/11/07(月) 22:01:30.770160デフォルトの名無しさん
2011/11/08(火) 21:59:49.89それと関数型って言うとLISPの他はMLっぽいのが多い気がするけど他の系統ってどんなのがある?
0161デフォルトの名無しさん
2011/11/08(火) 22:03:20.530162デフォルトの名無しさん
2011/11/08(火) 22:03:29.710163SCHEME餃子 ◆8X2XSCHEME
2011/11/09(水) 00:42:50.37どういうものを関数型って呼ぶかは明確な定義があるわけじゃありません。 でも Scheme や CL はマルチパラダイムを標榜してはいますね。 LISP 族の中には純粋関数型のものだってあると思いますが、それは少数派。
関数型的な特徴は「プリミティブ」であって、その上に様々なパラダイムを載せられるのが LISP の強力な点だとされています。
例えば Java だって関数型のアプローチでプログラムすることは出来ます。 C++ を定理証明に使うアイデアもあります。
http://www.kmonos.net/wlog/102.html#_0103091022
でも、 Java は関数型ではなくて、 C++ は定理証明器ではありません。 何故なら、そういった書き方はプログラマがそういうパターンに沿って書くことが一応可能であるということであって、そのように書くための道具 (語彙) を作ることが難しいからです。
つまり、抽象度の違いです。 Java は手続的なアプローチに抽象化する道具は揃っていますが、そうではないパラダイムを持ち込もうとすると言語のサポートは望めないのです。
一方で、 LISP はどうでしょうか? SICP にあるような Prolog もどきや回路シュミレータを見ればわかるように、一旦ライブラリを構築してしまえば「もはやそういう言語であるかのように記述できる」のです。
これらの差が生じるのは、一般的な言語における抽象はそれぞれの言語ごとでのパラダイム (クラスとかテンプレートとか) が単位であるのに対し、 LISP ではS式という「記法」が単位であるからだと私は考えています。
あらゆるパラダイムをひとつの言語で実現できて、時には混在もできるというのは圧倒的な強みになると思います。 それが、私が LISP (Scheme) を好む理由です。 下手するとカオスになるというデメリットと隣りあわせではありますけどね。
0164デフォルトの名無しさん
2011/11/09(水) 00:56:34.33そのトリップ、SCHEMEはともかく8X2Xって何?
0165デフォルトの名無しさん
2011/11/09(水) 01:09:43.02JavaとかCだと、文と式があって、言語の拡張=文の追加・変更が難しい。
LispはS式で統一されてるので、Lisp自身の拡張が容易、ってのが大きいんじゃないかな?
0166デフォルトの名無しさん
2011/11/09(水) 01:09:51.42あまりだろ。
0168デフォルトの名無しさん
2011/11/09(水) 07:42:05.030169デフォルトの名無しさん
2011/11/09(水) 12:10:28.17現実世界で圧倒的に役に立っているのは
JavaやC++なんだけどな
0170デフォルトの名無しさん
2011/11/09(水) 12:15:21.470171デフォルトの名無しさん
2011/11/09(水) 13:20:04.760172デフォルトの名無しさん
2011/11/09(水) 15:31:18.24LISPの言語拡張は、S式が作り出した知恵の一つ、いや武器か。
普通のやつらは決して辿り着くことができないLISPの英知として、
S式が我々に与えたものだ。昔、規格策定で起きた大きな抗争の時にな。
あの時はホント、まいったよ。
見ての通り、継ぎ目すらない美しいフォルムだろ?
一体どんな仕組みでできてるのか、調べれば判るだろうが、
すまない。私には興味がないんでね。
詳しい事は、まだArc作ってるポールにでも聞いてみるんだな。
何か知っているんじゃないか?
S式。
ろっと、驚かせてしまったようだな。
これは他の言語で言う、演算子でも文でもない。
いわばS式だけが作り出せる構造体だ。
ただ実行するだけでなく、データとして取り出せる。
例えば、この無数の括弧。気を付けろ、数えると一瞬で悟ってしまうぞ。
悟りとは何かだって?
ハハハハ、それは昨日言っただろう?
あ、すまない。君にとっては明日の出来事か。
いや、もっと先だったかもしれないな。
その日が来たら、また説明しよう。
0173デフォルトの名無しさん
2011/11/09(水) 16:22:15.67これの
interactive {INTERACTIVE-STRING {PARAMETER}*|LIST}
っていう引数の書き方はなんなんでしょうか?
正規表現的なようでよく分かりません
0174デフォルトの名無しさん
2011/11/09(水) 18:34:02.30どこの現実世界にいるんだよ
おまえは
0175デフォルトの名無しさん
2011/11/09(水) 18:39:34.590176デフォルトの名無しさん
2011/11/09(水) 19:03:51.750177デフォルトの名無しさん
2011/11/09(水) 22:39:53.450178デフォルトの名無しさん
2011/11/09(水) 23:21:14.60そもそもなんでトリップ付けてんの?
NGワードに設定しやすくていいけど。
0179デフォルトの名無しさん
2011/11/09(水) 23:47:03.41波カッコ{} オプション
スター* 0回以上の繰り返し
縦棒| または
つまり、引数は無くても良い。ある場合は次の2つのうちのいずれか一方。
INTERACTIVE-STRINGの後ろに0個以上の任意個のPARAMETER
LIST
BNFってやつかな。
0180デフォルトの名無しさん
2011/11/10(木) 00:12:37.84また具体的にどのように上を行くのでしょうか?
0181デフォルトの名無しさん
2011/11/10(木) 00:17:37.91今じゃ下にしがみつくのがやっと
0182デフォルトの名無しさん
2011/11/10(木) 00:18:01.22※具体的な方法は確認されておりません
0183デフォルトの名無しさん
2011/11/10(木) 00:21:30.75俺が業界に入って以来VBも残ってるよ
俺が業界から去っても多分残ってると思うよ
そういうスパンで区切ると他の言語でも別に問題ないと思えてくる
0184デフォルトの名無しさん
2011/11/10(木) 00:32:58.75彼の作った言語はどうなったんだ
名前忘れて思い出せないけど
0185デフォルトの名無しさん
2011/11/10(木) 00:34:29.970186デフォルトの名無しさん
2011/11/10(木) 03:13:45.23Arcは普通にバージョンアップとかされながら、
一部の人に使われてるみたいよ。
0187デフォルトの名無しさん
2011/11/12(土) 00:46:31.15http://random-state.net/log/3529868963.html
0188デフォルトの名無しさん
2011/11/12(土) 12:40:45.36htmlでいうところのh2とh3の属性値を見て、
id が設定されていなければ連番のidを独自に設定したいです
それ以外の要素は普通にhtmlへと書き出します
Gauche:SXMLとSXPath
http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3ASXML%E3%81%A8SXPath
Gauche ユーザリファレンス: 11.36 sxml.tools - SXML構造を操作する
http://practical-scheme.net/gauche/man/gauche-refj_159.html
このあたりを見てみましたが、どれを使えばよいのかよく分かりません
よろしくお願いします
0189デフォルトの名無しさん
2011/11/12(土) 13:41:55.630190SCHEME餃子 ◆8X2XSCHEME
2011/11/12(土) 17:53:44.33読んでわからなかったのなら他の人もわからない可能性が高いので、
WiLiKi の初心者の質問箱に書いたほうが後続の人のためになるかもね?
俺もSXMLのモディファイヤを使うのは始めてなので本当にこれが正しいのかよくわからないけど、
試してみた感じではちゃんと動いた。
;; 必要なライブラリを use する
(use sxml.tools)
(use sxml.sxpath)
(use sxml.ssax)
;; テスト用に元になる sxml を作る
(define sxml
(ssax:xml->sxml
(open-input-string "<xml><h1>2</h1><h1>3</h1></xml>")
'()))
;; id を生成するジェネレータ
(define id-maker (let1 x 0 (^() (inc! x) `(id ,#`"L,(counter)"))))
;; sxpath で対象ノードを抜き出してそこに id を追加
(for-each (cut sxml:set-attr! <> id-maker) ((sxpath "//h1") sxml))
;; これで id がついてるはずなので確認してみよう
(write sxml)
0191デフォルトの名無しさん
2011/11/12(土) 18:43:04.34SXMLは基本リストを使った単なるツリーなので、
ツリーを操作するのと同じで問題ないよー。
>>190みたいに副作用で破壊的に変更しても良いし、
map-unionとかで走査して、置き換えても良いし。
0192デフォルトの名無しさん
2011/11/13(日) 00:14:17.95LLVM経由の下流でも使えるなら、成果共有できればいいのにな。
Fast and Precise Hybrid Type Inference for JavaScript
http://people.mozilla.org/%7Elmesa/ti-draft.pdf
The Impact of Optional Type Information on JIT Compilation of Dynamically Typed Languages
http://www.masonchang.com/storage/papers/dls05-chang.pdf
0193デフォルトの名無しさん
2011/11/13(日) 10:01:22.66この分野はJavascriptがJavaと
一緒に最先端を形成してる。
pluginによる言語機能も
メタサーキュラーJITに組み込まれる
実装が広く出回り始めたり。
0194デフォルトの名無しさん
2011/11/13(日) 10:58:26.37特定の条件を満たした時に
複数のHTML:p手続きを実行?するにはどうすればいいのでしょうか
例を出すと
(when test (HTML:p "foo") (HTML:p "bar"))
のように書くと、最後のbarのみが出力されてしまいます
意図しているのはどちらも出力させることです
0195デフォルトの名無しさん
2011/11/13(日) 11:42:13.97どうせ最終的に write-tree するんだろうから、↓でいいんじゃないか?
(if test (list (html:p "foo") (html:p "bar")) '())
0196デフォルトの名無しさん
2011/11/13(日) 18:31:53.54html:pとかは、HTMLを出力するのではなくて、
文字列やシンボルで表現されたHTMLのツリーを返すだけの関数。
だから、whenの仕様通り、最後の式の(html:p "bar")の値が返される。
>>195みたいにリストで括るか、html:divとかで括るかすれば良いよ。
0197デフォルトの名無しさん
2011/11/13(日) 22:29:00.85ありがとうございます。
sxpath の使いどころの流れが見えてきました。
いろいろと試してみます。
0198デフォルトの名無しさん
2011/11/13(日) 22:57:40.66http://d.hatena.ne.jp/aike/20111112
Fruity Wrapper ってソフトを使っているみたいだけど、
takの再帰処理毎に3和音を生成->アルペッジョを生成てなことをしているのかな
tak関数のこういう使い方は思ってもいなかったので面白い
0199デフォルトの名無しさん
2011/11/13(日) 23:11:59.470200デフォルトの名無しさん
2011/11/13(日) 23:44:45.49普通のプログラマがtak関数の応用について1%考えているとして、
がんばって考えた人が2%だとすると、98%ぐらい考えられていないからなあ。
0201デフォルトの名無しさん
2011/11/14(月) 00:08:19.530202デフォルトの名無しさん
2011/11/14(月) 03:15:01.10メガデモ的でもあるな、なんかちょっと感動した
0203デフォルトの名無しさん
2011/11/14(月) 06:40:13.56マイクロベンチマークとしては割と見かける部類だと思う
0204デフォルトの名無しさん
2011/11/14(月) 08:42:59.60他の言語のベンチマークでも見かけるくらいにはメジャー。
0205デフォルトの名無しさん
2011/11/14(月) 09:04:53.880206デフォルトの名無しさん
2011/11/14(月) 11:37:05.16エンジンはGauheを使えたらさらにうれしいのだけど。
0207デフォルトの名無しさん
2011/11/14(月) 11:51:54.50http://sourceforge.net/apps/wordpress/schemeway/
0208デフォルトの名無しさん
2011/11/14(月) 11:53:30.09ぜんぜん日本語情報がないよね。
0209デフォルトの名無しさん
2011/11/14(月) 12:02:47.64さらにさらに人口が少ない日本語話者による日本語の解説を期待しても始まらないよ。
日本語情報が欲しいならEmacs使わないと。マイノリティを貫くならそれなりの覚悟が必要。
そもそも英語の情報だって、最悪辞書見ながら読めば普通に意味が分かる程度には読める。
日本人なら誰でも長年英語勉強してるんだから。
0210デフォルトの名無しさん
2011/11/14(月) 16:48:15.26話者・使用人口で語るのは間違いだろうなあ。人口1,200万人ならそう言って問題ないだろうけど。欧
米の言語を無理やり方言とすると、漢字の方言とすると日本と中国は中国のおかげで人口的には勝って
いる。
ttp://www.mext.go.jp/b_menu/shingi/chukyo/chukyo3/015/siryo/06032707/005/001.htm
日本語環境が遅れるのはIT政策を3年ぐらいの経済対策として消費してしまったのが一番の原因だと
思うよ。もっと長いスタンスでIT分野を応援していればこうはならなかったんじゃないかな。FreeBSD
とか、2000年あたりはかなり活発だったよね。雑誌もいっぱいあったし、書籍も多かった。Redhat,
TurboLinux, Vine linux等の名前は知っていたけどインストールしていなかったな。Vine以外の日本語
環境はどうだったの?
0212デフォルトの名無しさん
2011/11/14(月) 18:50:46.58Javaってひょっとして静的型推定なのでGCがある以外はC++とあんま変わらない?
確かに高速になったとは聞いたけど
0213デフォルトの名無しさん
2011/11/14(月) 19:07:56.88LISPには特に無かった
結局流れるお金の量なわけです
0214デフォルトの名無しさん
2011/11/14(月) 20:56:12.69Javaはなぁ、VisualAgeのScratchエディタがEclipseにも乗っていればよかったのにとつくづく思う
REPLみたいなこと出来てアレでの開発はCPU食う代わりに効率よかったんだけどな
0215デフォルトの名無しさん
2011/11/14(月) 21:16:39.530216デフォルトの名無しさん
2011/11/14(月) 22:08:56.12この阿呆はLispスレに何しに来たんだよ……。
言ってることもやってる場所も何もかも間違ってて突っ込み切れない。
方言として認識すれば日本語でドキュメント書いてくれるヤツが増えるのか?
後半の段落は1960年に発表されたLispに関係あるのか?
0218デフォルトの名無しさん
2011/11/14(月) 22:13:42.75SBCLも速い。
まあベンチなんて所詮遊びだけど…
http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php
0219デフォルトの名無しさん
2011/11/15(火) 00:33:23.33批判は誰でもできるんだよ。じゃあ、日本語環境が厚くないのは、なぜ?
0220デフォルトの名無しさん
2011/11/15(火) 00:48:14.18>人がキレるのは、前頭葉のコントロール能力が弱くなっているからではないかと、専門家の間で言われています。
0221デフォルトの名無しさん
2011/11/15(火) 01:04:14.64>> 結局流れるお金の量なわけです
そんな悲しいこと言うな。オレは信じてるよ、人の思いの強さを。
最後に勝つのはAIだよ、AI。
0222デフォルトの名無しさん
2011/11/15(火) 01:28:59.20そもそもの話は外国産マイナーツールの日本語情報が少ないよ、って話だからな?
マイノリティの中のマイノリティが少ないのは当然だ、っていうとても当たり前の意見に、
「日本語を漢字の方言と見なせば多数派だ」とか言ってお前が絡んできたんだからな?
全然事情の異なるFreeBSDやLinuxの事例まで持ち出して。
質問についてだけど、日本語環境が厚くない、という曖昧な表現されても他人には分からんよ。
CLでもSchemeでもClojureでも、処理については多くがUnicodeレベルの国際化を達成しているから、
メッセージカタログとかのUI方面での対応の話と取るけど、構わないな?
単に、それをして受ける恩恵と、それに必要な労力が見合う人がコミュニティにいないからだよ。
開発者の興味とかコミュニティの大きさや文化、個人の趣味とか、色々な要素が関係しているが、
結局は人がいないという所に帰結する。
0223デフォルトの名無しさん
2011/11/15(火) 01:41:32.42そうすれば、英語が得意でUIの地域化に貢献したい人が出てきたり、
処理系やツールに投資してくれる企業が現れて、対応が改善したりする。
こうなって初めて、国からの援助も期待できる。
そういう風にコミュニティを変えていくために必要な労力と、
自分を変えて不自由なく立ち回れるようになる労力を比べて、
後者を選択してる人が多いだけの話。
0224デフォルトの名無しさん
2011/11/15(火) 01:50:15.33「人がいない」って人が少ないって意味だよな。人が少ないと言えるのは何人ぐらいがいればいいの?
人が少ないとで思考停止しちゃうのは問題ないかね?
わざわざ言いたくないけど「日本語を漢字の方言と見なせば多数派だ」はジョークだからなあ。日本語
ユーザーが世界で考えると少ないというのに反論したかっただけ。
人が少ないで思考停止しちゃうのは問題ないかね?
マイノリティ云々言い出す奴でガチでそう思っている人がいるから発言は配慮しようぜ。
0225デフォルトの名無しさん
2011/11/15(火) 03:13:36.90とりあえず、意図を教えてくれたのはありがたいな。今まで意味不明過ぎた。
あと冗談はかなり寒い。>>211を見ても。俺らが感性ないだけかもしれんが。
人の少なさを実感したいなら、GitHubやBitbucketで言語別にリポジトリを検索すると良いよ。
相対的にマイノリティなことは理解できる。絶対的に多いか少ないかは証明が難しいな。
こちらはことあるごとに人の少なさを実感するんだけど、それじゃ納得いかないだろうしな。
逆に、>>224は人が十分に多いと思う何らかの根拠があると思うんだけど、それは何?
思考停止してると思うなら、別の原因に何らかの心当たりがあるんじゃないのか?
0226デフォルトの名無しさん
2011/11/15(火) 05:05:39.95は
>>218
のベンチマークにRacketがあるのにGaucheがない理由を想像できるかい?
0227デフォルトの名無しさん
2011/11/15(火) 05:09:13.11人が少ないと言えるのは何人ぐらいがいればいいの?
↓訂正
人が少なくないと言えるのは何人ぐらいがいればいいの?
あと多言語と比べても日本語を使えるユーザーは十分いるし、日本は国としてはお金持ちだ。GitHubや
Bitbucketの話はそうなんだろう。それで実際に開発に関わっている日本人が人が少ないという話は肯定
しているよ。
でも、「人が少ない」という現状認識は聞き飽きたから、その現状認識への処方箋を出すべきなんじゃ
ないかという提案だ。
EclipseのSchemeのプラグインが欲しいと思うならLisper Schemer向けEclipseの勉強会(ネット回線なし)を
資料代(A4二枚のレジュメ)500円で都心で開けばいいんじゃないの。交通費のみでプラグイン開発者一人を
呼んで色々と話し合えばEclipse以外の話も出てくるだろうし、個人個人で何ができるかというのがみえて
くるんじゃないかな。三日坊主プロジェクトをいっぱい立ち上げてとりあえずやってみればいいんだよ。そ
して、隔月か、三カ月に一回集まって刺激し合えばいい。
3.11でみんなの意識が変わったから今がやり時だと思うよ。今の有事から終わらない日常に戻ったら何も変わら
ないだろうなあ。自分が言いたいのはそういう話。
>>226
どういう理由? マジで知らない。
そういう話を勉強会で顔を突き合わせて、問題意識を共有すればいい。一人で悶々と考えたり、プログに書いても
あんまり効果がないんだから、身体をもっと使うべきじゃないのかね。
0228デフォルトの名無しさん
2011/11/15(火) 07:39:24.110229デフォルトの名無しさん
2011/11/15(火) 07:52:47.340230デフォルトの名無しさん
2011/11/15(火) 07:55:13.80中・高・大学で10年以上教育を受けていて、日本人は英語を不自由にしていると言い切れるのかね。
0231デフォルトの名無しさん
2011/11/15(火) 08:29:38.04俺個人としては、マルチバイト文字処理が手軽に出来れば嬉しい。
もし英語読むの面倒だから、程度の理由なら、殆どのプログラム言語が英語ベースの現状で、随分甘えたやつとしか思わない。
そんなところの敷居を誰かが下げてくれるのをただずっと待つか、自分から積極的に今ある資料を活用して自分の付加価値も相対的に上げるのか、選ぶのは自分だけどな。
0232デフォルトの名無しさん
2011/11/15(火) 09:33:49.31プログラムを書くのもコメントは日本語より英語のほうが多いんだし。逆に
一部を除いて日本発のものの英語ドキュメントの貧弱さは寂しいと思ってる
くらい。読むより書くほうが敷居が高いけどね。
日本語で〜と考える場合、すでに環境を整えやすいClojureをやっておけばい
いよ。web関連ならこっちで十分だから。schemeならばgaucheでもperlのちょっ
とした代わりくらいはできる。書籍はまえより充実してきてると思うけどな。
0233デフォルトの名無しさん
2011/11/15(火) 11:05:15.01字の大きさぐらいだな。すまんね年寄りで
0234デフォルトの名無しさん
2011/11/15(火) 22:36:08.28横だけど、clojureはweb以外だとあまり良くないってこと?
0235デフォルトの名無しさん
2011/11/15(火) 23:40:34.45作ったスクリプトを他のwindowsパソコンでも使えるように
exe化できるのでしょうか?
0236デフォルトの名無しさん
2011/11/15(火) 23:48:04.64実行可能jarで妥協した方がいいんでないかな
0237デフォルトの名無しさん
2011/11/15(火) 23:58:36.09http://www.google.com/search?hl=ja&q=clojure+jar+%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%89%E3%82%A2%E3%83%AD%E3%83%BC%E3%83%B3+%E5%AE%9F%E8%A1%8C
0239デフォルトの名無しさん
2011/11/16(水) 00:00:51.12悪いとは言ってないし、そこまで判断してない。ただし、webに
というのはgoogle app engineやherokuに対応できるというところ
の強みがあるし、java系の強みを持ってる。だからweb関連ならこっちで十分と
0240デフォルトの名無しさん
2011/11/16(水) 01:34:37.47Web以外は既存のjavaと敷居が一緒なんだよ
Webサーバサイドで使うと開発効率がJava+tomcatよりも高いのが魅力なんだ
0241デフォルトの名無しさん
2011/11/16(水) 01:57:32.39レスありがとう。これなら本格的にclojure使おうと思っていたので、汎用には
欠点があるのかと気になったんだけど、そういうことなら大丈夫そうで安心した。
0242デフォルトの名無しさん
2011/11/16(水) 02:21:21.64Clojureで速いプログラムを書こうと思ったら、ちょっと知識が必要だけど
最初ならプログラミングClojureやlabreplで遊んでればいいよ。:-)
0243デフォルトの名無しさん
2011/11/16(水) 22:38:56.77竹内関数で音楽生成 - aikeの日記
http://d.hatena.ne.jp/aike/20111112#c1321336379
>当の本人の竹内です.友人から教えてもらってアクセスしました.
>素晴らしいですね.嬉しかったので,このURLをみんなに紹介しまくっています.
高評価みたい
0244デフォルトの名無しさん
2011/11/16(水) 22:54:13.350245デフォルトの名無しさん
2011/11/17(木) 02:46:50.610246デフォルトの名無しさん
2011/11/17(木) 03:01:22.40しかも復活祭までやちゃったんだよな
0247デフォルトの名無しさん
2011/11/17(木) 07:49:47.320248デフォルトの名無しさん
2011/11/17(木) 08:50:08.66馬鹿丸出しですねw
0249デフォルトの名無しさん
2011/11/17(木) 09:30:17.13TAOの事いってるならおまえが馬鹿をさらけ出してるとしかいえない.
0250デフォルトの名無しさん
2011/11/17(木) 10:04:04.00誰も使ってなかったな
0251デフォルトの名無しさん
2011/11/17(木) 10:18:15.00せめてもうちょっと上手くなってから言えって感じだよ
0252デフォルトの名無しさん
2011/11/17(木) 10:35:27.53数学者が日本の品格みたいな本出すようになるともうヤキが回った状態であることが
わかるのと同じようなもので。
0253デフォルトの名無しさん
2011/11/17(木) 10:44:08.95Railsエンジニアを募集してる会社の採用面接を受けた時の話。
転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。
仮想化技術とか色々書いたけど、プログラミング言語の中で興味があるのはTaoだったので、
Taoと書いておいたのですが、それを見た面接官のリアクションが酷かった。
面接官「Tao・・・ふははっ!Tao!」
面接官「Taoやってるんですか?wwwww」
俺「(唖然)は、はい・・まだS式を理解したぐらいですが。。」
面接官「Tao・・・ニヤニヤ」
その人はエンジニアで、当然Rubyのコードを書いている人だったので、
Rubyが「Matz Lisp」と呼ばれている事を知らないワケが無いだろうと思っていた。
つまり、このリアクションは"理不尽な状況に直面した時にどう対応するか"を見ているんだろうと判断し、あえて突っ込みは入れずに対処した。
しかし最後の質問で「何故RoRを採用したんですか?」と聞くと、
気まずそうに理由を話し、最後に「・・・と、聞いてます」と答えた。
つまりこの人は上からRubyを採用すると言われたから使っているのであって、
特別Rubyに思い入れとか無いリーマンエンジニアなんだなあと分かった。
mix-inとかもLisp発のテクニックだし、RubyやってるならTaoに興味を持つのは普通だと思うんだけどなあ。
多分ガチで知らなかったんだろう。
0254デフォルトの名無しさん
2011/11/17(木) 10:48:40.40何をしたのかわからないけどw
0255デフォルトの名無しさん
2011/11/17(木) 11:41:25.320256デフォルトの名無しさん
2011/11/17(木) 11:53:51.710257デフォルトの名無しさん
2011/11/17(木) 11:57:17.030258デフォルトの名無しさん
2011/11/17(木) 12:01:28.67Lispの神様なのに
嘘が通用するのは日本限定か
0259デフォルトの名無しさん
2011/11/17(木) 12:05:49.39専用ハードに、ほぼ単一に近い言語環境。
電電公社ならではの採算も将来性も度外視したプロジェクト。
0260デフォルトの名無しさん
2011/11/17(木) 12:12:09.73寄付すんの辞めたわ
金だけ取って肝心の中身がないなんて
0261デフォルトの名無しさん
2011/11/17(木) 12:17:04.070263デフォルトの名無しさん
2011/11/17(木) 13:10:13.37他になんかあったっけ?
0264デフォルトの名無しさん
2011/11/17(木) 13:34:55.870265デフォルトの名無しさん
2011/11/17(木) 13:39:06.52神様だって名乗るにはちょっと寂しい
0266デフォルトの名無しさん
2011/11/17(木) 13:48:57.29傲慢だと思う。Lispの仏様という人もいたり、周りがヨイショしてるだけ
だろ?そんなに政治力があってLisp界のナベツネやスターリンなのか?
0267デフォルトの名無しさん
2011/11/17(木) 13:52:46.020268デフォルトの名無しさん
2011/11/17(木) 13:57:33.47誰が最初に呼び出したの?
0269デフォルトの名無しさん
2011/11/17(木) 14:03:12.87勝手に神様と持ち上げて、暫くしたら叩き落とそうとするのって、マスゴミがよく使う手だよね。
0270デフォルトの名無しさん
2011/11/17(木) 14:07:17.990271デフォルトの名無しさん
2011/11/17(木) 14:15:04.490272デフォルトの名無しさん
2011/11/17(木) 15:03:07.30Practical Common Lispにもコメントを寄せてたけど。
0273デフォルトの名無しさん
2011/11/17(木) 15:18:01.74話題になっているの聞いたことない
0274デフォルトの名無しさん
2011/11/17(木) 15:30:28.26爺しかもう知らんのかも。
0275デフォルトの名無しさん
2011/11/17(木) 15:44:22.67こんないいものがあるなら俺達で実装するのやめよう、といったぐらいなのにな、
KCLは(その結果KCLをベースにGCLが作られた)。
0276デフォルトの名無しさん
2011/11/17(木) 15:51:11.610277デフォルトの名無しさん
2011/11/17(木) 17:11:00.42ソース出せないのが痛かったねえ。
出せたらもっと関連研究者増えてただろうに。
KL1のUNIX版が出てきたのも驚くほど遅かった。
UtiLispのC言語版公開も2000年代に入ってからじゃなかったっけ?
ソースコード公開されている処理系が他にあるんだから、そっちに流れちゃうよね。
0278デフォルトの名無しさん
2011/11/17(木) 17:31:24.96> あの、たいていのものは俺達で実装しよう、としたがるGNUの連中が、
そうなのか? guileだって最初はSCMをベースにしたし、ライセンスに問題が
なければ使えるものは使うんじゃないかと思ってた。
俺実装するのはフリーなライセンスでベースに出来そうなものが無い場合じゃないかと。
0279デフォルトの名無しさん
2011/11/17(木) 17:47:29.10その後、Gosmacsは商用になったから、コードを全部排除したけども。
0280デフォルトの名無しさん
2011/11/17(木) 18:34:55.250281デフォルトの名無しさん
2011/11/18(金) 06:56:28.65Gambit REPL なんていう iPhone アプリあるんだね。
0282デフォルトの名無しさん
2011/11/18(金) 17:36:21.01Gambitベースなのは、Gambit for AndroidとScheme REPL Module。
他には、JSchemeベースのScheme-droid、Scheme REPL、
Clojure REPL、Kawaなどなど。
0283デフォルトの名無しさん
2011/11/18(金) 17:57:59.62指でコードなんて書けるのかな
0284デフォルトの名無しさん
2011/11/18(金) 18:03:20.720285デフォルトの名無しさん
2011/11/18(金) 21:40:53.050286デフォルトの名無しさん
2011/11/18(金) 22:03:42.620287デフォルトの名無しさん
2011/11/18(金) 23:03:27.26((lambda (a) (a b)) c)
上のラムダ計算式の構文上の導出と
それに関連する抽象構文木を生成せよ。
という問題が分からないのですが、どなたかご回答いただけませんか?
0288デフォルトの名無しさん
2011/11/18(金) 23:37:25.06lispの瘴気 - Togetter
http://togetter.com/li/215803
0289デフォルトの名無しさん
2011/11/18(金) 23:48:26.27宿題か?んなもん自分で調べろ
0290デフォルトの名無しさん
2011/11/18(金) 23:55:41.73竹内がblogに書きこんできたとか
くだらないことは嬉々として書きこむくせに
肝心のことは回答しないのな
何のための掲示板だよ
0291デフォルトの名無しさん
2011/11/19(土) 00:09:06.91くだらないことは嬉々として書きこむくせにとか
くだらないことは嬉々として書きこむくせに
0292デフォルトの名無しさん
2011/11/19(土) 00:10:07.710293デフォルトの名無しさん
2011/11/19(土) 00:35:59.72サンプルと同様のものを自分でも作って作業のBGMにしてみたいが
どうやればいいんだろう
0294デフォルトの名無しさん
2011/11/19(土) 00:36:54.860295デフォルトの名無しさん
2011/11/19(土) 00:53:46.510296287
2011/11/19(土) 06:12:48.81調べてもわからなかったので・・・
0297デフォルトの名無しさん
2011/11/19(土) 07:03:15.96講義でやってない内容は課題として出ないんだから、
素直にテキストとかで復習するとか、友達にノート見せてもらえば?
どうしても分からないなら、質問しに行った方が良い。ポイントも稼げる。
今後も分からないことがある度にここに聞きに来る気?
今ちゃんとやらないと、本当に講義に付いていけなくなっちゃうよ?
0298デフォルトの名無しさん
2011/11/19(土) 07:13:42.930299デフォルトの名無しさん
2011/11/19(土) 09:15:34.570300デフォルトの名無しさん
2011/11/19(土) 09:24:45.64練習問題解けない本があるとか
0301デフォルトの名無しさん
2011/11/19(土) 11:07:12.51そのレベルの問題なら。
0302SCHEME餃子 ◆8X2XSCHEME
2011/11/19(土) 11:31:22.35MML で出力しといて適当なソフトで MID ファイルに変換すればいいんじゃないかな。
0303デフォルトの名無しさん
2011/11/19(土) 14:39:49.09GJ
京大の講義資料やってみてーなー。
0304デフォルトの名無しさん
2011/11/19(土) 14:45:50.92心配になる日本語だよな
0305デフォルトの名無しさん
2011/11/19(土) 15:10:14.68にやにやしてるんだよな
相変わらず性根が腐っていることで
0306デフォルトの名無しさん
2011/11/19(土) 16:39:13.19それに関連する抽象構文木を生成せよ。
回答例:問題の意味がわからない。
0307デフォルトの名無しさん
2011/11/19(土) 16:43:09.68私は、よく使うのがc,javascript,VB という、よくある、プログラムが本業ではないが、私個人や仕事のチームの業務改善にプログラム作成もするもんです。
自分にとってなじみのない分野の考え方のさわりでもしってみたいのです。
本がそこそこ充実しているcommon lisp が良いでしょうか。
0308デフォルトの名無しさん
2011/11/19(土) 16:46:00.250309デフォルトの名無しさん
2011/11/19(土) 18:24:30.56読む奴が糞だから理解できないって言ってたアホは
どう言い訳するんだ?
0310デフォルトの名無しさん
2011/11/19(土) 18:31:59.070311デフォルトの名無しさん
2011/11/19(土) 19:11:50.00ちょー可哀そうなんだけどw
0312デフォルトの名無しさん
2011/11/19(土) 19:41:59.93いくつかあったのは事実だと思う。<SICP
0313デフォルトの名無しさん
2011/11/19(土) 19:43:04.79間違っているって言っているんだが
0314デフォルトの名無しさん
2011/11/19(土) 19:53:38.760315デフォルトの名無しさん
2011/11/19(土) 19:58:33.00今の時代に学部低学年でSICPやらせるのは
趣味の押しつけ以外の何物でもないと思うし
0316デフォルトの名無しさん
2011/11/19(土) 20:00:08.660317デフォルトの名無しさん
2011/11/19(土) 20:00:57.72和田さんはどうすんだよw
0318デフォルトの名無しさん
2011/11/19(土) 20:02:09.27なんとも言えんけど、彼らの話が出てこないと。
0319デフォルトの名無しさん
2011/11/19(土) 20:03:24.630320デフォルトの名無しさん
2011/11/19(土) 20:04:25.17英語の使えない状態でMITで授業をするってありえる?
0321デフォルトの名無しさん
2011/11/19(土) 20:05:15.33むずかしい文章が読めないだけで
0322デフォルトの名無しさん
2011/11/19(土) 20:05:47.050323デフォルトの名無しさん
2011/11/19(土) 20:06:30.29ロボチックだろ、訳が。
0324デフォルトの名無しさん
2011/11/19(土) 20:08:58.140325デフォルトの名無しさん
2011/11/19(土) 20:16:27.02いまwikiで和田さんを見ると、wikipediaの創設者が和田さんに見えて仕方がない。
あんな若い外人だったっけ?と。。。
0326デフォルトの名無しさん
2011/11/19(土) 20:27:06.200327デフォルトの名無しさん
2011/11/19(土) 20:29:42.380328デフォルトの名無しさん
2011/11/19(土) 20:31:54.090329デフォルトの名無しさん
2011/11/19(土) 20:44:44.38逐次前もって教えるってIPSJ会誌の教育コーナーで書いてたよ。
0330デフォルトの名無しさん
2011/11/19(土) 20:47:01.02東大名誉教授が読めなかった文章を
読めないってだけで
留年させる必要はないわけで
0331デフォルトの名無しさん
2011/11/19(土) 20:52:18.450332デフォルトの名無しさん
2011/11/19(土) 20:58:07.67ネタ混じりで馬鹿にしたと
0333デフォルトの名無しさん
2011/11/19(土) 21:00:09.770334デフォルトの名無しさん
2011/11/19(土) 21:01:04.370335デフォルトの名無しさん
2011/11/19(土) 21:20:26.25複数落とすと次の年履修がかぶって留年するはめになることあるが。
演習問題一つで単位落とすこともないし。
0336デフォルトの名無しさん
2011/11/19(土) 21:25:10.00複数間違っているように
書いてあるけど
0337デフォルトの名無しさん
2011/11/20(日) 16:32:26.16実験単位が欠席2回で不可が出たりする(自分はそれで2留した、3年に行く必須の単位なんで)所もあるから実験とかレポートは結構厳しいものだとおもってた
病気療養でも斟酌してもらえなくて結構泣いたよ
0338デフォルトの名無しさん
2011/11/20(日) 17:37:41.65という印象が強いが。
0339デフォルトの名無しさん
2011/11/20(日) 18:20:05.17ttp://d.hatena.ne.jp/yad-EL/20091007/p1
0340デフォルトの名無しさん
2011/11/22(火) 16:47:22.830341デフォルトの名無しさん
2011/11/22(火) 17:22:54.300342デフォルトの名無しさん
2011/11/22(火) 19:21:54.22面倒ならR4RSとかR5RSとか対応にしとけばいい
もうR6RS以降は暇な人向け実装だな
CommonLISP程に時間が掛かってはいかんでしょ
0343デフォルトの名無しさん
2011/11/24(木) 01:46:33.31循環参照してるオブジェクト同士でメソッドを呼び合いたいのですが、
相互のメソッドを使うためにメソッドをuseしなければならず、useは循環して使えないので
うまくできません。
今のところ考えたのは、別モジュールに空のメソッド群を置いておいてそのモジュールだけを
useするという方法です。でも、これは冗長ですし気持ちわるいので、きっと他に良い方法が
あると思っています。
どなたか教えていただけないでしょうか?よろしくお願いします。
0344デフォルトの名無しさん
2011/11/24(木) 03:20:19.11一方をuseせずにautoloadにしておくって手がある。機能的に非対称で、
一方が他方に従属する感じの時は、従属する方をautoloadにすることが
おいらは多いかな。
でも機能的に対称な場合はautoloadで非対称なのが気持ち悪いんで、
別モジュールにdefine-genericをまとめて書いとくかなあ。そのモジュールを
インタフェース定義だと思えばそんなに悪くない。
0345デフォルトの名無しさん
2011/11/24(木) 04:26:36.51autoloadって評価されるまで何が起こるのか判らないのと
名前の二元管理という点であまり推奨できない
0346343
2011/11/24(木) 05:42:29.28回答ありがとうございます。こんな時間に回答がもらえるとは流石Scheme板なのか...。
う、やっぱり別ファイルに分けるのが良さそうですね。
というかそもそもオブジェクトシステムを理解してなくて
define-genericを知りませんでした...。define-methodは
これを自動でやってくれてるのですね。
0347デフォルトの名無しさん
2011/11/25(金) 21:45:12.850348デフォルトの名無しさん
2011/11/26(土) 13:10:38.02LispやSchemeからの変換機あるかなと思ったら
以外と誰も作ってない。Stalinと速度比較したかった。
0349デフォルトの名無しさん
2011/11/26(土) 13:41:07.50ついでに言っとくと Lisp 系言語は変数側に型がないだけで
変数に代入されるオブジェクトには結構厳しい型付がある
0350デフォルトの名無しさん
2011/11/26(土) 14:11:05.70あるからlisp->C->luajitは出来るが、
http://cluecc.sourceforge.net/
直接変換では無いので、C止めの1/10になりそう。
最近だと、llvm経由で言語間コンバートあるけど、やっぱり最適化は難しいのかな。
llvm-to-javascript
https://github.com/kripken/emscripten/wiki
0351デフォルトの名無しさん
2011/11/26(土) 18:43:29.05SBCLの圧勝です。
0352デフォルトの名無しさん
2011/11/27(日) 00:00:34.74http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php
http://shootout.alioth.debian.org/u64/which-programming-languages-are-fastest.php
fixnumとunsafe使えばsbclの方が速いかな?
0353デフォルトの名無しさん
2011/11/27(日) 00:03:50.290354デフォルトの名無しさん
2011/11/27(日) 00:57:49.97Schemeでambとかマクロ展開してからLuaに変換できたら高速だし最高なのに
0355デフォルトの名無しさん
2011/11/27(日) 03:20:49.77いいうさぎとかめですね
0356デフォルトの名無しさん
2011/11/27(日) 05:10:08.81というより主張だけが必死で話を聞いてない
この2つの考察から
スルーするのが適当じゃなかろうか。
0357デフォルトの名無しさん
2011/11/27(日) 05:32:36.83妄想が激しい人なのな
0358デフォルトの名無しさん
2011/11/27(日) 05:35:02.00特別な書き方しなくても速いんだが
0359デフォルトの名無しさん
2011/11/27(日) 05:55:52.20言語実装が1つだから無駄なリソースをあまり使わずに進化できたんじゃないかな
あんま知らんけど
0360デフォルトの名無しさん
2011/11/27(日) 08:31:33.050361デフォルトの名無しさん
2011/11/27(日) 12:41:29.83Lispも他に置いてかれないように頑張りましょう、ってことで。
RacketあたりはJIT採用してたはずだから、頑張って欲しいね。
0362デフォルトの名無しさん
2011/11/27(日) 12:54:12.80って論文書いてたよね。 2009年だけど。
あのあとCLの最適化って少しは進んだのかな。
0363362
2011/11/27(日) 12:55:09.42「An evaluation of Major Lisp Compilers」by Seika Abe
http://cl-www.msi.co.jp/solutions/knowledge/lisp-world/tutorial/compiler-eval-b.pdf
0364デフォルトの名無しさん
2011/11/27(日) 13:50:36.94商用の奴もダメって?
あとネットで(要約の)閲覧できるならリンク頂戴
0365デフォルトの名無しさん
2011/11/27(日) 14:03:59.93あと, cmucl のドキュメントの中で最適化を施すと危険な場合ってのが列挙
してあって, その部分の見直しがほとんどなされてない
コンパイラ製造技術は上がって来てるのでその辺の対応が強く望まれる
あと吐き出したコード見ればわかるんだけど peephole が壊滅的にだめ
0366デフォルトの名無しさん
2011/11/27(日) 17:17:23.09小細工すれば速くなるし
0367デフォルトの名無しさん
2011/11/27(日) 23:11:26.72なんでわざわざ遅いLuaに翻訳しないといけないの?
Javascriptならブラウザ上で動くとかメリットあるけど。
0368デフォルトの名無しさん
2011/11/28(月) 01:41:29.85自作の関数をいくつか書いておき、起動時にそれらを自動的に読み込ませる、というのは
どこにどのような設定をかけばよいのでしょうか
0369デフォルトの名無しさん
2011/11/28(月) 02:08:39.13Schemeが亀のように遅いからだろ
0370デフォルトの名無しさん
2011/11/28(月) 02:55:02.840371デフォルトの名無しさん
2011/11/28(月) 03:08:05.180372デフォルトの名無しさん
2011/11/28(月) 06:50:26.82バニラのLuaでもCトランスレータを超える性能面のメリットがあるの?
……って意味じゃないの、「遅いLua」って言い回しは
本人に訊かないと本当の所は分からないが
俺は性能面ではなく、ClojureやNuのようなホスト環境とよく馴染むLispとしては興味あるけど
SchemeやCLのトランスレータは実物を見てからでないとあまりワクワクしないな
0373デフォルトの名無しさん
2011/11/28(月) 07:28:31.90要約というか本文が >>363 にあるよ
日本語。共通部分式の除去も定数伝搬もほとんどされてない、
ってのは悲しくなった。誰かCommon Lisp on LLVM作って。
0374デフォルトの名無しさん
2011/11/28(月) 10:56:48.73ホームディレクトリの.ccl-init.lisp。
そこで直接関数を定義しても良いし、適当なファイルをloadで読んでも良い。
Windowsだとバージョンでデフォルトのホームディレクトリの場所が違うから、
(translate-logical-pathname "home:")
を評価して表示された場所。
0375デフォルトの名無しさん
2011/11/28(月) 13:43:19.86Lua -> JIT -> 機械語
だとLuaの方が速いんだよな
0376デフォルトの名無しさん
2011/11/28(月) 13:59:02.190377デフォルトの名無しさん
2011/11/28(月) 14:00:07.690378デフォルトの名無しさん
2011/11/28(月) 14:02:00.71文句言うなら代替案を出せよ。
代替案ない批判は何の価値もないよ。
0379デフォルトの名無しさん
2011/11/28(月) 14:08:36.340380デフォルトの名無しさん
2011/11/28(月) 14:21:30.360381デフォルトの名無しさん
2011/11/28(月) 14:31:36.26Luaってどん亀Gaucheより遅そうだな
0382デフォルトの名無しさん
2011/11/28(月) 14:39:59.84馬鹿か
0383デフォルトの名無しさん
2011/11/28(月) 14:43:35.400384デフォルトの名無しさん
2011/11/28(月) 14:44:43.14Gaucheより遅そうって
馬鹿以外の何物でもないだろ
0385デフォルトの名無しさん
2011/11/28(月) 14:47:54.230386デフォルトの名無しさん
2011/11/28(月) 14:50:59.550387デフォルトの名無しさん
2011/11/28(月) 14:59:20.86http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua
0388デフォルトの名無しさん
2011/11/28(月) 15:11:30.430389デフォルトの名無しさん
2011/11/28(月) 18:03:06.620390デフォルトの名無しさん
2011/11/28(月) 18:41:59.63しかも組み込み用の糞言語w
0391デフォルトの名無しさん
2011/11/28(月) 18:52:17.990392デフォルトの名無しさん
2011/11/28(月) 19:56:21.62の理解を深めろって。^^; さもないと成長せんぞ。
0393デフォルトの名無しさん
2011/11/28(月) 22:37:16.30ありがとうございます!
0394デフォルトの名無しさん
2011/11/28(月) 23:59:23.73http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3aVM%E3%81%AE%E6%9C%80%E9%81%A9%E5%8C%96%3aJIT%3a%E4%BA%88%E5%82%99%E5%AE%9F%E9%A8%93
素人考えだと二倍とか三倍くらいの速度になるなら甲斐がありそうにも思うけど、
ポータビリティや保守性を捨ててまでやるほどではないということみたいだね。
Gauche に限らず JIT を入れた方が速くなるのは百も承知なんだよ。
それでももっと大事なことのために導入しないという決断をしたんだから、
遅いじゃないかと言われてもそういうものなんですというしかない。
逆に Lua は速度の方が大事だという決断をして他の諸々を捨てたんだから
そっちはそっちで不満なところもあるだろうさ。 銀の弾丸は無いって奴だな。
ところで Lua のロゴマークのデザインってセイコーインスツルのに似てね?
http://www.lua.org/
http://www.sii.co.jp/
0395デフォルトの名無しさん
2011/11/29(火) 00:06:47.55保守性はともかくポータビリティは問題なさそう
0396デフォルトの名無しさん
2011/11/29(火) 01:05:55.94確かにluajitは個別にしか対応できないな。
googleのv8,naclみたいにx86,x64,arm,llvmでしか動かない実装考えるグループも出てきてる時代だけど、
schemeは置いといて、clは人材流入がなくて難しいのかも。
haskellでもx86専用SIMDコードが埋め込まれたり、llvmに載せちゃえとかあがいてはいる。
普通のコードをJITやCPU最適化で高速化するタイプの人材流入から
cl/.net/ruby/perl/phpあたりは置いていかれてる感はあるかもしれないね。
0397デフォルトの名無しさん
2011/11/29(火) 08:52:41.78Ruby→Rubinius
Perl→ParrotにLLVMプラグインがあるので、RakudoもLLVMを使える
PHP→PHP.rebootならHotSpot効くんじゃね?多分
0398デフォルトの名無しさん
2011/11/30(水) 14:06:16.64何を意味しているのでしょうか?
0399デフォルトの名無しさん
2011/11/30(水) 16:53:13.14prin1 だったんだけど、read できるかどうかを考慮してさらに prin2 とか prin3
とかが作られていった。でも方言ごとに意味がバラバラだった。
princ は1文字しか出力しない方言があったので character の c なんだろうが、
そうでない処理系では無意味。
0400デフォルトの名無しさん
2011/11/30(水) 17:13:53.880402デフォルトの名無しさん
2011/11/30(水) 18:31:13.45ttp://hibari.2ch.net/test/read.cgi/tech/1309940115/355
質問者は同じ人?
回答になっているのか、わからんが。
まだ疑問があるなら軽く調べると英語でなんか出てくるんじゃないの。
0403デフォルトの名無しさん
2011/11/30(水) 20:20:15.60適当すぎるんじゃないか?
さすがに挙動が違うのに番号変えただけは適当すぎるんじゃないか?
コボル人か?
0405デフォルトの名無しさん
2011/11/30(水) 23:21:17.60prin1 は PRINt characters of 1 object.
princ は PRINt the Characters of some Object.
print は PRINT compound object.
だったはず。
0406398
2011/11/30(水) 23:27:54.17HyperSpecではそこまで言及されていなかったので勉強になります
CLHS: Function WRITE, PRIN1, PRINT, PPRINT...
http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_pr.htm
0407デフォルトの名無しさん
2011/12/01(木) 08:52:19.28一引数関数でアトムしか印字できなかったはず。
いわばprint下請け関数。
けどLisp interpreterは任意数引数関数にするの簡単だから…
0408デフォルトの名無しさん
2011/12/01(木) 11:55:32.37http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/5addd533ea72207a/3d01f02a08dc0d5e
ググったら十年前の質問が出てきた。
0409デフォルトの名無しさん
2011/12/02(金) 01:20:36.63知りませんでした
なるほど
0410デフォルトの名無しさん
2011/12/03(土) 02:16:04.15ちょっと発表してみたい内容できそうなんだけど
0411デフォルトの名無しさん
2011/12/03(土) 02:41:55.54次まで待て。
0412デフォルトの名無しさん
2011/12/03(土) 03:41:06.82Shibuya.lisp主催でもメーリングリストだけ告知させてもらうにしても自分で動いて
みたらどうかな。公共施設だと場所の確保が難しそうだけど、年末・年始は日本に
戻ってくる人もいるかもしれないし、
地方帰郷組とかいて、変わったイベントになるかもね。具体的な開催予定候補日を
示して呼びかけだけはしてみたら良いと思う。反応が悪かったら取り下げるという
感じで。
集まりが悪くて、Shibuya.lisp主催では年一回という方向みたいだね。
過去一年間で気になった題名の記事
そろそろShibuya.lispテクニカルトーク第7回 やりませんか
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/feea5fbd70dfd899
Shibuya.lisp Tech Talk 開催頻度についての提案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/568065ebcde1be21?tvc=2
Shibuya.lisp TTの改善案
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/63bde3be188a5404?tvc=2
第6回 PAIP読書会を開催します
ttps://groups.google.com/group/Shibuyalisp/browse_thread/thread/c44c802420dc7a98#
>>411
どういう趣旨で発表したいのかわからないけど、入門者大歓迎でこじんまりとやるのも
いいと思うけどね。小規模でややクローズドなイベントでいいなら実家の一室を開放できる人も
いるでしょう。
低コスト会場の一例。
PCインフラは乏しそう。年末年始は休み。申し込み条件は中野区に関わりがある人
ttp://www.nices.jp/facility/zero/gakusyu.html
ttp://www.nices.jp/reserve/culture.html
0413デフォルトの名無しさん
2011/12/03(土) 09:30:23.560414デフォルトの名無しさん
2011/12/03(土) 09:48:05.610415デフォルトの名無しさん
2011/12/03(土) 10:07:42.42スタックやレジスタの処理だ
リストはメモリ割り当てが頻繁に起こって遅くなりそう
0416デフォルトの名無しさん
2011/12/03(土) 10:08:54.080417デフォルトの名無しさん
2011/12/03(土) 11:43:25.32道府県庁所在地でやれば5人ぐらい集まるんじゃないの?
文句を言わずに動け。
他分野の話だけど地方の県庁所在地で活発にやっている所があるよ。あと関数言語とプログ
ラミング教育とemacsと英語ぐらいのテーマでNPOってできるんじゃないのかね。原文(英語)
ハンドブックを教材に使って、辞書を片手にプログラミングさせるのが良いと思う。
全然訳せなくて使い方が分からない場合に手助けする感じだと人は伸びるよ。
あとttps://groups.google.com/group/Shibuyalisp/の集客問題は何かの足しになると思う。
0418デフォルトの名無しさん
2011/12/03(土) 12:41:06.91別にShibuya.lispじゃなくて、普通にネットで発表しても、
興味深いもの、ことなら反響あると思うけど。
この前の竹内関数とか盛り上がったし。
0419デフォルトの名無しさん
2011/12/03(土) 12:49:09.040420デフォルトの名無しさん
2011/12/03(土) 13:18:25.51この前takを利用して音鳴らすってのが、Lisp界隈で話題になって盛り上がってたでしょ。
元ネタの所に御大降臨したりして。面白いものならどこで発表しても反響がくるんじゃない?
って話だよ。
盛り上がってる勉強会とかなら熊本とかなんじゃないの? よく知らんけど。
本人たちは楽しそうにやってるのは分かる。
0421デフォルトの名無しさん
2011/12/03(土) 13:35:41.280422デフォルトの名無しさん
2011/12/03(土) 13:36:58.78表に出てこないな
0423デフォルトの名無しさん
2011/12/03(土) 15:11:27.27形態は勉強会でもなんでもいいでしょ。
ネットで発表して得る物と人前で発表して得る物って違うんじゃないの。
人前で発表して得る具体的な物って言えないが、ネットコミュニケー
ションonlyの限界ってあると思う。
年1回でもいいから地域で定期的にやって団体をつくれば、偉い人を呼び
やすいし、他県勉強会の遠征もしやすいでしょ(車出す・出さないとか)。
ヘタレlisper/schemmerでいいから代表として誰かが立てば、忙しい
lisper/schemmerも参加しやすくなるんじゃないの。代表に求められるのは、
lispの能力より雑用処理能力だよね。
0424デフォルトの名無しさん
2011/12/03(土) 22:21:06.15http://d.hatena.ne.jp/karasuyamatengu/20111130/1322671954
>SK8というNetwton向けのLisp Machineを殺したのはジョブスに違いない
yebo blog: なぜ、HyperCardは死ななければならなかったのか
http://yebo-blog.blogspot.com/2011/12/hypercard.html
>彼は、ニュートンのLispマシン化させるSK8の死の背後にいたことは間違いない。
この点がよく分からないのですけど、newtonとlispにはどういう関係があるのですか?
0425デフォルトの名無しさん
2011/12/04(日) 00:31:00.58つ http://en.wikipedia.org/wiki/SK8
0426デフォルトの名無しさん
2011/12/04(日) 00:44:48.44∧_∧
( ´・ω・`) ∧_∧
/ \ ( )何言ってんだこいつ
.__| | .| |_ / ヽ
||\  ̄ ̄ ̄ ̄ / .| | |
||\..∧_∧ (⌒\|__./ ./
||. ( ) ~\_____ノ| ∧_∧
/ ヽ 空気読めよ \| ( )
| ヽ \/ ヽ. オマエ馬鹿だろ
| |ヽ、二⌒) / .| | |
.| ヽ \∧_∧ (⌒\|__./ /
0427デフォルトの名無しさん
2011/12/04(日) 00:47:00.11sitアーカイブだからMacないと展開に苦労するし、
ライセンスはここ読めってページがなくなってるしw
http://sk8.research.apple.com
0428デフォルトの名無しさん
2011/12/04(日) 00:50:13.950429デフォルトの名無しさん
2011/12/05(月) 19:14:05.58あと64行未満だったらどうされますか? 行の量レベルによっての取り組み方の違いとかをご教授して
いただけませんか?
LispでもLinuxディストリ間ぐらいだったら可搬性も楽に高められるかな? Lispだと他の人が読めないよ
というクレームが来たら最悪違う言語で書き直せば良いんだよね。そのスクリプトは製品ではなく数ヶ月
後までに書き直しておけば問題なしという条件で。
あと処理のアイデア・メモはみんなlispで書いちゃうのかな?
0431デフォルトの名無しさん
2011/12/05(月) 20:13:34.540432デフォルトの名無しさん
2011/12/05(月) 20:15:41.600433デフォルトの名無しさん
2011/12/05(月) 22:44:29.380434デフォルトの名無しさん
2011/12/05(月) 23:09:55.33UNIXの得意なことはshでやる。
fileやprosessにまつわるバッチ処理。
0435デフォルトの名無しさん
2011/12/06(火) 00:28:56.29#!/bin/perlとか書くくらいならgoshする
パイプつなげてガリガリとコマンドを呼び出してステートチェックするならbashで書くわ
書きやすい方の道具使うべきなんであってLispありきってのは間違いじゃろ
0436デフォルトの名無しさん
2011/12/06(火) 02:26:25.510437デフォルトの名無しさん
2011/12/06(火) 07:30:19.88bash等と比べると書きやすいで言えばLispだし、ブログのネタにしやすいのもlispでしょ。
つまりはLispありきでいいんじゃないか。
0438デフォルトの名無しさん
2011/12/06(火) 17:39:58.040439デフォルトの名無しさん
2011/12/06(火) 17:54:14.86期待してる。
0440デフォルトの名無しさん
2011/12/07(水) 00:05:07.89schemeではmapになるのでしょうか?
そして、common lisp のmapcarにあたる関数は何でしょうか
0441デフォルトの名無しさん
2011/12/07(水) 00:27:18.03ただし、mapcと違ってfor-eachが返す値は未定義。
0442デフォルトの名無しさん
2011/12/07(水) 00:41:59.82気になったのですが、common lispのdolistとmapcは何が違うのでしょうか
0443デフォルトの名無しさん
2011/12/07(水) 01:16:57.98dolistはより手続き的。リストの要素で変数を束縛してブロックを実行する。
mapcはより関数的。リストの要素に関数を適用する。
http://cl.cddddr.org/index.cgi?%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB#H-xy6b4yo1bpqy
0444デフォルトの名無しさん
2011/12/07(水) 01:34:56.54すっきりと腑に落ちました。
これで使い道に迷うことはなさそうです。
0445デフォルトの名無しさん
2011/12/07(水) 02:18:53.89dotimesとかもそうなんだけど、dolistは
http://www.lispworks.com/documentation/HyperSpec/Body/m_dolist.htm#dolist
> It is implementation-dependent whether dolist establishes a new binding of var
> on each iteration or whether it establishes a binding for var once at the
> beginning and then assigns it on any subsequent iterations.
って決まってて、処理系によってはループ変数が破壊的に変更される可能性がある。
そういう場合にクロージャとかでその変数を捕捉すると悲劇が起こる。
具体的にはこう(↓)なる。
http://blog.practical-scheme.net/shiro/20060110-for
mapcは引数で渡すからこの問題は起きないはず。これは覚えておいた方が良いかも。
0446デフォルトの名無しさん
2011/12/08(木) 12:05:04.37(case 0 ((0) 1))
→ 1
になるので
(case 0 (((if #t 0)) 1))
→ 1
になって欲しかったのですが
→ ()
になってしまいます。
case が eqv? で比較してるので
(eqv? 0 (if #t 0))
が #f になるかと思ったんですが、これは #t になります。
case 文の 条件部分(呼び方がわかりません。)に
if 文を使うことはできないんでしょうか?
0447デフォルトの名無しさん
2011/12/08(木) 12:21:55.04(define a 0)
(case 0 ((a) 1))
-> ()
(case 'a ((a) 1))
-> 1
0448デフォルトの名無しさん
2011/12/08(木) 19:06:31.53case の条件部分はただのデータで、評価されない。
なのでその書き方は 0 という整数と (if #t 0) というリストを比較している。
0449デフォルトの名無しさん
2011/12/08(木) 20:18:39.48今度からそういうときはcondを使ってね
0450デフォルトの名無しさん
2011/12/08(木) 20:30:54.670451デフォルトの名無しさん
2011/12/08(木) 21:34:09.97レスありがとうございます。
condを使えば思ったとおりに動かすことが出来ました。
0452デフォルトの名無しさん
2011/12/09(金) 19:26:16.97ttp://dis.4chan.org/tech/
0453デフォルトの名無しさん
2011/12/09(金) 19:36:34.400454デフォルトの名無しさん
2011/12/10(土) 00:23:20.840455デフォルトの名無しさん
2011/12/10(土) 03:12:38.880456デフォルトの名無しさん
2011/12/10(土) 23:59:47.79http://www.geocities.jp/m_hiroi/xyzzy_lisp/abclisp02.html
listの説明の図がわかりやすいです
画像ならまだしも、テキストでセルの要素を表現できることに驚きました
このような図を作成するにはどういうツールを使えばよいのでしょうか
0457デフォルトの名無しさん
2011/12/11(日) 00:18:56.260458デフォルトの名無しさん
2011/12/11(日) 01:33:40.730459デフォルトの名無しさん
2011/12/11(日) 02:15:31.710460デフォルトの名無しさん
2011/12/11(日) 04:05:42.470461デフォルトの名無しさん
2011/12/11(日) 04:49:30.79副作用のある関数が普通に書けるからじゃろ
0462デフォルトの名無しさん
2011/12/11(日) 12:42:42.40から、あるなし論争があるけど、ML系でも異色でちょっと取り扱いづらい
けど人気があるよね。モナド信仰なんだろうかな。サクサク作っていける
部分もある。
0463デフォルトの名無しさん
2011/12/11(日) 17:43:52.850464デフォルトの名無しさん
2011/12/11(日) 18:04:26.40sxml形式で記述した外部ファイルを読み込み
xmlに変換して他のファイルに出力したいと思いました。
ですが、方法がわかりません。
sxmlのデータが*sxml-data*にあるとき
(use sxml.serializer)
(print (srl:sxml->xml *sxml-data*))
とすればxmlのデータを整形して出力することと、
返還後のxmlデータが*xml-data*にあるとき
(with-output-to-file filename
(lambda ()
(format t "~A" *xml-data*)))
と書くとfilenameで指定したファイルに*xml-data*が書き込まれるだろうことはわかりました
ここで行き詰まったのは外部sxml(*.scm)を読み込んで変換し出力するという処理の
とくにはじめの部分と処理全体です
(with-input-from-file filename...)
で読み込んだファイルを一文字ずつや一行ずつ処理できるのはわかったのですが、
一度に読み込む方法はあるのでしょうか
最終的には
http://karetta.jp/book-node/programming-gauche/197708
の「SXMLでは次のとおりに記述します。」直後のコードを保存したファイルを読み込み、
それを別ファイルにxmlとして保存する関数を作成したいのですが
可能でしょうか?
0466はちみつ餃子 ◆8X2XSCHEME
2011/12/11(日) 20:28:21.93関数型とは何かという明確な定義は無いので、ちゃんとしたというのがどの程度のことを言うのかで判断が分かれると思いますね。
Haskell が「純粋関数型」と呼ばれることからもわかるように、その逆の純粋でない関数型もあるわけで。
純粋でないことを以ってちゃんとしてないというのであれば「そうですね」という感じかなぁ。
純粋とそうでないのとを分ける基準があるのかもよくわかりませんが、
あたりまえに副作用を起こせるのを純粋とは言えないのは間違いないでしょう。
そもそも LISP は何でも有りの自由なところが特徴だし、
Common Lisp や Scheme はマルチパラダイムを標榜してもいるので、
LISP という言語が関数型としてどうかという問いはあまり意味がないですね。
あなたがそうしたければ純粋関数型的な語彙を組立ててそのスタイルを貫く自由は与えられています。
0467デフォルトの名無しさん
2011/12/11(日) 23:36:25.04ありがとうございます
0468デフォルトの名無しさん
2011/12/12(月) 06:30:20.680469デフォルトの名無しさん
2011/12/12(月) 11:33:48.29今は他の言語でも見られるしね。S式+マクロはLisp族だけだね。
0470デフォルトの名無しさん
2011/12/12(月) 11:34:43.390471デフォルトの名無しさん
2011/12/12(月) 14:14:41.71(val (lis1) (lis2 (lis3)))
このリストに別のリスト(lis4)を追加して
(val (lis1) (lis2 (lis3) (lis4)))
のようにlis2のリストの末尾に追加したいです
そのあとで追加したリストも
(val (lis1) (lis2 (lis3) (lis4) (lis5) (lis6)))
というふうに後ろに挿入したいのですが、
どういう操作をすればよいでしょうか
0472デフォルトの名無しさん
2011/12/12(月) 14:57:15.97そういうことをやりたくなるってことは、リストが分かってないってこと。
0473デフォルトの名無しさん
2011/12/12(月) 19:27:28.750474デフォルトの名無しさん
2011/12/12(月) 21:30:27.250475デフォルトの名無しさん
2011/12/12(月) 22:17:16.53(defun append-tail (l m)
(append (list (first l))
(list (append (list (first (second l)))
(list (append (second (second l))
m))))))
CL-USER> (append-tail l '(4))
((1) (2 (3 4)))
CL-USER> (append-tail (append-tail l '(4)) '(5))
((1) (2 (3 4 5)))
CL-USER> (append-tail (append-tail (append-tail l '(4)) '(5)) '(6))
((1) (2 (3 4 5 6)))
0476デフォルトの名無しさん
2011/12/12(月) 22:24:46.15意図した通りに動きました!ありがとうございます
0477デフォルトの名無しさん
2011/12/12(月) 22:31:47.17副作用無しのその動作も魅力的です
ありがとうございます
0478475
2011/12/12(月) 22:45:13.92CL-USER> (setq n '(((3) 2) (1)))
CL-USER> (push 4 (first (first n)))
(4 3)
CL-USER> n
(((4 3) 2) (1))
CL-USER> (push 5 (first (first n)))
(5 4 3)
CL-USER> (push 6 (first (first n)))
(6 5 4 3)
CL-USER> (push 7 (first (first n)))
(7 6 5 4 3)
CL-USER> n
(((7 6 5 4 3) 2) (1))
CL-USER> (pop (first (first n)))
7
CL-USER> n
(((6 5 4 3) 2) (1))
0479デフォルトの名無しさん
2011/12/12(月) 22:52:01.53リストをひとつのオブジェクトに見立ててるように見えるけど、
そういう場合は、各要素へのアクセサを定義した方が良いよ。
単純になるし、保守性が良くなる。
あるいは、素直にクラスとか構造体、レコードで定義した方が楽。
単なる演習とかならどんな書き方しても良いと思うけど。
0480475
2011/12/12(月) 23:42:26.08具体的に書いてよ。
中高一貫校の中学1年生が英作文の問題を必死こいて解いている子に関係代名詞を使うとシンプルな文章になって
読みやすいよと言われても語彙や文法を知らないのですよ。Web参考書は揃っているんだけどw
0481デフォルトの名無しさん
2011/12/13(火) 00:18:03.51詳しく説明するのが面倒だった。食いついて来たら説明する予定だったけど。
てーか取り敢えず落ち着けよ。明後日の方向に弾飛んでんぞw
(define (value-name v) (cadr v))
(define (value-value v) (caddr v))
(define (set-value-name! v x) (set-car! (cdr v) x))
(define (set-value-value! v x) (set-car! (cddr v) x))
(define *x* '(value "x" ()))
(value-name *x*) ;=> "x"
(value-value *x*) ;=> ()
(set-value-name! *x* "y")
(set-value-value! *x* (append (value-value *x*) (list 0 1 2)))
(value-name *x*) ;=> "y"
(value-value *x*) ;=> (0 1 2)
こういうイディオムのこと。クラスやレコードはそれらのWeb参考書読んでくれ。
0482デフォルトの名無しさん
2011/12/13(火) 00:23:05.99なんでもリスト使うようなプロトタイプを最初に作るときとか、
後でデータ構造を差し替えたり、コードの可読性を上げるためにやるでしょ?
0483デフォルトの名無しさん
2011/12/13(火) 00:47:15.15Python使いにRubyで答えればプログラマとしての幅も広がるし、良いことづくしだ。
0484デフォルトの名無しさん
2011/12/13(火) 00:52:58.740485デフォルトの名無しさん
2011/12/13(火) 00:56:25.81そもそもCommon LispともSchemeとも書いてないんだから。
マジレスすると、CLerだった場合はset-car!をrplacaに読み替えれば分かると思います。
普通は汎変数使うと思うけど。
0486デフォルトの名無しさん
2011/12/13(火) 03:25:02.31CLerは当然schemeぐらい読めるから
0487デフォルトの名無しさん
2011/12/13(火) 07:57:52.150488デフォルトの名無しさん
2011/12/13(火) 09:49:08.780489デフォルトの名無しさん
2011/12/13(火) 09:50:25.930490デフォルトの名無しさん
2011/12/13(火) 22:15:12.19gaucheに接近するかと思ったら全然ダメだな。
arc> (time (tarai 12 6 0)) ;; arc3.1
time: 11241 msec.
arc> (time (tarai 13 7 0))
time: 83869 msec.
> (time (tak 12 6 0)) ;; Racket
cpu time: 197 real time: 197 gc time: 0
> (time (tak 13 7 0))
cpu time: 1480 real time: 1481 gc time: 0
> (time (tak 14 8 0))
cpu time: 11046 real time: 11047 gc time: 0
gosh> (time (tak 12 6 0)) ;;gauche
; real 0.715
; user 0.710
; sys 0.000
gosh> (time (tak 13 7 0))
; real 5.214
; user 5.220
; sys 0.000
gosh> (time (tak 14 8 0))
; real 38.301
; user 38.060
; sys 0.000
0491デフォルトの名無しさん
2011/12/14(水) 08:06:59.330492デフォルトの名無しさん
2011/12/14(水) 09:29:29.96http://docs.racket-lang.org/guide/performance.html#%28part._.J.I.T%29
0493デフォルトの名無しさん
2011/12/14(水) 10:04:57.250494デフォルトの名無しさん
2011/12/14(水) 13:17:09.14ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log1/Gambit_20benchmarks.html
ttp://www.cs.utah.edu/~mflatt/benchmarks-20100126/log2/Benchmarks.html
0495デフォルトの名無しさん
2011/12/14(水) 18:59:12.22馬鹿はお前だろうw
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=racket&lang2=lua
0496デフォルトの名無しさん
2011/12/15(木) 17:39:51.40これって、life関数を呼び出すたびにworldを作っているのか…
0497デフォルトの名無しさん
2011/12/15(木) 18:37:41.57sicpプラグインではあるけど、set-mcar!をエイリアスしてるみたい
0498デフォルトの名無しさん
2011/12/16(金) 21:43:56.97コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。
0499デフォルトの名無しさん
2011/12/16(金) 22:48:59.800500デフォルトの名無しさん
2011/12/16(金) 23:05:37.170501SCHEME餃子 ◆8X2XSCHEME
2011/12/16(金) 23:17:28.130502デフォルトの名無しさん
2011/12/16(金) 23:20:12.360503デフォルトの名無しさん
2011/12/17(土) 04:11:27.04マルチ死ね
0504デフォルトの名無しさん
2011/12/17(土) 04:39:57.42だからマゾいの嫌だって言っているでしょ。インタプリタならlispで書いた方が楽でしょ。
Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。
>>501
つまらないし、目的がみえてこない。
0505デフォルトの名無しさん
2011/12/17(土) 04:47:17.360506デフォルトの名無しさん
2011/12/17(土) 04:55:38.30おまえは499を否定しているがハードウェアべったりの処理系でGC付き言語を組むとかなり楽しいのだが。
GCは奥が深いぞ
0507デフォルトの名無しさん
2011/12/17(土) 06:08:02.26どうせなにも出来ないから黙っとけ。
0508デフォルトの名無しさん
2011/12/17(土) 13:38:40.94マゾいのが嫌だっていうから原始的なやつって書いたのに。
そもそも手習いが目的なのに「〜の方が楽」とかアホだろ。
0509デフォルトの名無しさん
2011/12/18(日) 00:07:58.23>Cで文字列処理はしない方が良いと思っているんだけど、偏見かな。
はい
0510デフォルトの名無しさん
2011/12/18(日) 00:19:37.390511デフォルトの名無しさん
2011/12/18(日) 02:03:36.80プログラムを楽しく組む為に必要な事は「いつでも初心でいられる」事だと思っている
そんなわけで>>504 はこの土日もグズグズすると感じてしまうのであった。
;;;仕事でもプライベートでもプログラムを書くのを楽しくするコツは2行目ね
0512デフォルトの名無しさん
2011/12/18(日) 02:20:46.27ほんとうにありがとう
0513デフォルトの名無しさん
2011/12/19(月) 07:27:48.68schelogをrequireしたらソース公開しないといけないの?
0514デフォルトの名無しさん
2011/12/19(月) 09:12:28.02これを見る限りではLGPL
LGPLは(GPLも)プライベートな利用では何の条件も要求しない
頒布する場合に条件が要求されるが、具体的な条件はお前のコードとSchelogを「リンク」する方法による
0515デフォルトの名無しさん
2011/12/19(月) 15:37:56.70(clispとsbclの2パターン)
lisp処理系をインストールせずに使えるよう
実行バイナリ化して配布しようと思うのですが、
配布する際のライセンスは結局どうなるのでしょうか
lisp処理系とライブラリのライセンスそれぞれの影響がよくわかりません
使うのは↓のライブラリです
http://www.cliki.net/Clack
http://www.cliki.net/CL-PPCRE
0516デフォルトの名無しさん
2011/12/19(月) 23:47:34.98http://cl.cddddr.org/index.cgi?%E8%89%AF%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F#H-2v8nnc63s7pll
ライブラリについては、手を加えなければ、ライセンスに影響を与えない。
その場合、アプリケーションには自分の好きなライセンスを設定できる。
ただ、含まれるライブラリのバージョンのソースコードの入手手段の保証や、
それぞれのライブラリのライセンス本文の提示とかはしないといけないから、
その辺はしっかり対応しないといけない。
ClackはGitHubだから、対応するリビジョンのリンクでも明記しておいて、
あとはそれぞれのライブラリがどのライセンスを採用してるのかを明記して、
LLGPLとBSDライセンスの本文を含めれば良いんじゃないのかなー。あと著作権表示。
0517デフォルトの名無しさん
2011/12/20(火) 00:32:23.27まさに探していた説明です
アプリケーションには任意のライセンスを設定できるのですね
そのうえで使ったライブラリのソースコードのありかとライセンスを表示する
すべきことがわかりました
0518デフォルトの名無しさん
2011/12/20(火) 01:55:11.33biglooやgambit-CでGPLなライブラリをuseやrequireしたものをCに変換して
Cをバイナリーにした場合はソース公開の義務はないってことでいいのかな
0519デフォルトの名無しさん
2011/12/20(火) 03:17:22.44それ普通にGPLに感染すると思う。
http://www.gnu.org/licenses/gpl-faq.ja.html#IfLibraryIsGPL
LGPLならライセンスは影響を受けないと思うけど、
静的リンクだから全ソースコード公開の義務はあると思う。
http://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License#LGPL.E3.81.AE.E7.89.B9.E5.BE.B4
LLGPLなら確か大丈夫なはず。ただ、ライブラリのコード配布は必須。
最後の段落。
http://opensource.franz.com/preamble.html
0520デフォルトの名無しさん
2011/12/20(火) 03:30:15.93動的リンクにできそうな予感が
0521デフォルトの名無しさん
2011/12/20(火) 11:04:08.18LLGPLのライブラリを静的リンクして実行ファイルを作った人は
使ったライブラリのソースコードを(公式サイトだけではなくて)独自に配布しなければならぬ
こう理解したけどこれでいいのかな
0522デフォルトの名無しさん
2011/12/20(火) 12:04:43.34動的リンクでも根本機能として必要ならダメだよ
使うのをきっぱりやめた方が早い
0523デフォルトの名無しさん
2011/12/20(火) 12:38:42.75できるの?
初めて聞いたんだけど
0524デフォルトの名無しさん
2011/12/20(火) 14:05:09.96それはGPLの話(>>518)だよな?
LGPLの4.d(LGPLv3の場合)では「"Minimal Corresponding Source"と"Corresponding Application Code"の配布」と
「適切な共有ライブラリ機構の使用」のどちらか一つの実行が条件だから
後者を選択した場合はソースの配布は義務付けられないと思うが
0525デフォルトの名無しさん
2011/12/20(火) 16:01:16.33入手できる手段を保証すれば大丈夫じゃないかな。アクセスできるかが重要なので。
自分は、GitHubとかなら特定リビジョンのリンクの提示だけでいけると解釈してる。
もちろん、配布元が閉鎖とかしちゃったら、自分で配布しなくちゃいけない。
この辺はGPLやLGPLの思想を汲んでおけば、そう大外しはしないと思う。
もちろん、会社の商売でやるなら法務と相談必須だけど。
0526デフォルトの名無しさん
2011/12/20(火) 16:23:32.92LLGPLの最後の段落に"in accordance with the terms and conditions of the LGPL"とあり、
LGPLの6.dでソースコードを同等のアクセス手段、同じ場所で提供すれば良いとされているため。
ダウンロードページに両方のリンクを張っておけば、多分これを満たすと思う。
http://sourceforge.jp/projects/opensource/wiki/licenses%2FGNU_Library_or_Lesser_General_Public_License
0527デフォルトの名無しさん
2011/12/20(火) 16:52:20.72ある関数実行したらファイルに書きだすようにしといて。
0528デフォルトの名無しさん
2011/12/20(火) 16:57:29.140529デフォルトの名無しさん
2011/12/20(火) 17:08:30.140530デフォルトの名無しさん
2011/12/20(火) 17:16:51.41まあ、ある意味そういうのも厨二心をくすぐられてwktkするけど。
0531デフォルトの名無しさん
2011/12/20(火) 17:43:22.27ライセンス上問題となった事件は何かある?
それとfranzがllgplをわざわざ設けた経由が知りたい
llgplでなくて修正BSDで実用上十分だと思うんだけど
裏事情があるのかしら
0532デフォルトの名無しさん
2011/12/20(火) 18:11:50.540533デフォルトの名無しさん
2011/12/21(水) 00:56:24.510534デフォルトの名無しさん
2011/12/21(水) 06:11:56.89どうみてもコピーレフトへの宣戦布告です本当にありがとうございました。
0535デフォルトの名無しさん
2011/12/21(水) 06:53:08.91修正BSDでなくてUnlicenseで実用上十分だと思うんだけど
裏事情があるのかしら
0536デフォルトの名無しさん
2011/12/21(水) 12:12:10.46修正BSDを開発者の視点から考えてみるといいよ
修正BSDでライセンスされているプログラムは、著作権表示の点をクリアすれば
ソースコードを公開しなくてもいい
そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
他の開発者からするとそのプログラムのコードを見る機会がなくなる
誰にとってそのライセンスがいいものかは立ち位置によって変わることには
注意したほうがいいかも
0537デフォルトの名無しさん
2011/12/21(水) 14:13:00.71>そのプログラムを開発した人にとっては自分が作成したコードを見せなくていいが
いまどきスパゲッティコードを書いているわけでもないだろうよ。
>他の開発者からするとそのプログラムのコードを見る機会がなくなる
見る機会がなくなるのも嘘な気がするなあ。最新技術としての賞味期限過ぎたら
公開しようかなと考える人・団体はかなり存在するんじゃないの。
BSDスタイルライセンスの良いところは公開しない・するといつでも自由に切り替えられる
ところだよ。
0538デフォルトの名無しさん
2011/12/21(水) 18:38:52.63NDAで公開出来ない物があるからじゃろ、自分のコードが綺麗でないから公開したくないってのとは別の問題。
0539デフォルトの名無しさん
2011/12/22(木) 00:06:49.95納入するときはツールを使ってわざとスパゲッティコードにしてる俺が来ましたよ
0540デフォルトの名無しさん
2011/12/22(木) 02:15:29.56そのツールは可逆性があるの?
鍵がないとそのツールを使えば可逆できるなあ。
0541デフォルトの名無しさん
2011/12/22(木) 02:29:56.350542デフォルトの名無しさん
2011/12/22(木) 07:37:11.950543デフォルトの名無しさん
2011/12/22(木) 13:00:00.91マクロを全部展開するだけでもスパゲッティー化できるよね
前に見たbiglooのソースもあきらかにやってたし
0544デフォルトの名無しさん
2011/12/22(木) 17:16:02.39自分でハックしてみたが方式が判ってても追跡困難だった
もう二度とやりたくない
0545デフォルトの名無しさん
2011/12/22(木) 17:53:04.64誰か公開したりしらいいなあ
0546デフォルトの名無しさん
2011/12/22(木) 19:06:20.31変数や関数の名前をランダムなものに変えたり
実行されない関数を追加したり
あと他に何があるかな
0547デフォルトの名無しさん
2011/12/22(木) 19:33:11.80実行されたら、それはそれで異常検出。
0548デフォルトの名無しさん
2011/12/22(木) 22:38:44.07やっぱりマクロの魔術師でしょう :-)
これRubyちゃうん?
いやCommon Lispさ(ふっ)
とか
0549デフォルトの名無しさん
2011/12/22(木) 22:44:35.94改行してしてなくてもいい場所は改行を削除
コメント部分の日本語を全部文字化けさせる
コメント部分に実行ファイルの機械語をASCIIコードに変換して追加
diffの差分ファイルを納入
0550デフォルトの名無しさん
2011/12/22(木) 23:03:45.810551デフォルトの名無しさん
2011/12/22(木) 23:18:29.70相手に解読されたら仕事が来なくなる
0552デフォルトの名無しさん
2011/12/23(金) 00:25:44.160553デフォルトの名無しさん
2011/12/23(金) 00:35:06.37当然、究極のスパゲッティにして渡したけど
0554デフォルトの名無しさん
2011/12/23(金) 00:37:44.490555デフォルトの名無しさん
2011/12/23(金) 01:59:19.41先輩のプログラム、センス悪いな。糞じゃん
あのひとエラソーにしてるだけだったよな。いなくてせいぜいだ
とか言われてるかも。
0556デフォルトの名無しさん
2011/12/23(金) 02:00:16.59次は、麻婆豆腐にスパゲティ入れて上にチーズをかけてオーブンで焼いてみ。
0557デフォルトの名無しさん
2011/12/23(金) 02:05:49.39そのプログラムを即座に改良できるのが俺だけ という優越感
0558デフォルトの名無しさん
2011/12/23(金) 03:45:54.90自分で一から書く気になってくれれば
0559デフォルトの名無しさん
2011/12/23(金) 03:55:01.34そういう先輩に限って卒業も飲み会に参加して、「まだあんな(俺の)プログラムを使っているの」とバカにしつつ顔が
喜んでいたりするんだよなあ。
0560デフォルトの名無しさん
2011/12/23(金) 22:32:46.08当然納入できなかったんだから違約金は払ってもらう。
0561デフォルトの名無しさん
2011/12/24(土) 00:55:59.540562デフォルトの名無しさん
2011/12/24(土) 06:09:07.85symbolとquoteの実装方法で参考になるコードどこかにないでしょうか
mosh?
0563デフォルトの名無しさん
2011/12/24(土) 06:19:30.020564デフォルトの名無しさん
2011/12/24(土) 06:57:54.590565デフォルトの名無しさん
2011/12/24(土) 06:58:35.92#define long SCM
とかしててびっくりした
0566デフォルトの名無しさん
2011/12/24(土) 07:13:22.47原理的なとこ知りたいならミニマルな処理系がいいんじゃない? tinyschemeとか。
つーてもsymbolは単に辞書に登録した文字列だし、quoteの処理はもっと高レイヤ
なのでLispで書いてあるevalの実装あたりを見ればいいんじゃないか。
0567デフォルトの名無しさん
2011/12/24(土) 11:29:44.730568デフォルトの名無しさん
2011/12/24(土) 11:41:02.55http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.html#%_sec_4.1
初学者がqouteの処理だと思っていることは、ほとんどreadがやっている。
0569デフォルトの名無しさん
2011/12/24(土) 15:35:57.68SICPって何回くらい読むもの?
再来年の年初めぐらいから読み始めようかな。
0570デフォルトの名無しさん
2011/12/24(土) 16:09:36.63そのコードを今度はCなりLISPなりに戻してやればよいじゃないかと思う。
動けばよいコードを納品って契約ならコンパイラでアセンブラはかせて、
それをそのまま納品でよいじゃないかともおもいます。
昔移植でアセンブラからCへコンパイルするコードは作ったことがあります。
半自動でしたけど9割は自動化して移植してました。
0571デフォルトの名無しさん
2011/12/24(土) 16:19:20.59環境って何?
0572デフォルトの名無しさん
2011/12/24(土) 22:10:55.2968アセンブラからCへコンバート。
IOは仮想化して対応した。
なのでアセンブラまで落とせればそれを高級言語に再変換してあげれば、
それだけで難読化しているようなもんだと思うよ。
動作の保証はテストを書いておいてそれを通すとある程度担保てきると思います。
0573デフォルトの名無しさん
2011/12/24(土) 23:34:26.370574デフォルトの名無しさん
2011/12/24(土) 23:37:57.620575デフォルトの名無しさん
2011/12/24(土) 23:39:19.87>>574はマグロ納品禁止な
0576デフォルトの名無しさん
2011/12/24(土) 23:42:17.730577デフォルトの名無しさん
2011/12/24(土) 23:46:44.33どういった用途に使われているのかな
0578デフォルトの名無しさん
2011/12/24(土) 23:47:55.58この野郎・・・!て思うわけよ
0579デフォルトの名無しさん
2011/12/24(土) 23:50:34.67ゲリラ的に入れちゃいました、って案件ばっかりだぞ
0580デフォルトの名無しさん
2011/12/24(土) 23:52:13.24「lispですよー知らないんですか哀れ」
0581デフォルトの名無しさん
2011/12/24(土) 23:54:26.950582デフォルトの名無しさん
2011/12/24(土) 23:55:14.01ポール・グレアムはlispでサイト作ってたんでしょ
「 10人のLispハッカーが集められないようなら、 たぶんあなたの会社はソフトウェアを開発するのに適さない都市にいるんだ。」とか言って
結局ヤフーにM&Aされて書き換えられたんだっけ
0583デフォルトの名無しさん
2011/12/24(土) 23:59:16.46あえてlisp入れてもそれほど面白くない
0584デフォルトの名無しさん
2011/12/25(日) 00:18:41.49JavaとかPythonとか、自分の足を撃ち抜きづらい言語が他にあるんだし。
具体的に、どんなマクロが可読性を下げると感じるのかには興味がある。
if*が気に喰わないとかならまあ理解できるけど、aifとかなら賛成できない。
あと、旧ITAとかMSIとか、プロジェクトで使っているとされる所は普通に存在するし、
そもそもFranzとかSBCLとかCCLの処理系開発者連中自体が複数人で開発してる。
興味があるならMSIのセミナーでも行ってみれば良いんじゃない。
0585デフォルトの名無しさん
2011/12/25(日) 00:21:33.42if*ってどんなマクロなの?
0586デフォルトの名無しさん
2011/12/25(日) 00:24:30.650587デフォルトの名無しさん
2011/12/25(日) 00:25:22.08こういうの。個人的には最高にキモいと思うけど、好みは人それぞれなので否定はしない。
http://cadr.g.hatena.ne.jp/g000001/20100529/1275126086
0588デフォルトの名無しさん
2011/12/25(日) 00:41:18.98いずれにせよ書き捨て用だけど
0589デフォルトの名無しさん
2011/12/25(日) 01:06:01.08関数で抽象化するのと、マクロで抽象化するのと、どう違うかな?
どちらも特定の入力を受け、特定の出力を返すものだけど。
構文特有の話ではなくて、実は抽象化の設計自体が悪かったりしないかな?
もちろん、Cで{ }をBEGINとENDにするような、ああいう単なる置き換えについては、
批判が付いて回るのも当然だと思うけど。こういうの。
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
>>588
Paul Grahamのエッセイでも読んだ?
Lisperの可読性に対するスタンスとかは、そのGrahamのこれなんかが参考になると思う。
http://practical-scheme.net/trans/power-j.html
この著者、しばしばPythonを引き合いに出してdisってるように見えることもあるけど、
別に嫌ってないし、一定以上の評価を与えてるから、それは勘違いしないで。
0590デフォルトの名無しさん
2011/12/25(日) 01:16:02.46名前付きの関数と新しい構文では、普通は次元が違うと捉えるだろう
別にポール・グレアムはPythonをdisってないよ。lisp化してるとか言っちゃってるし
ただPythonにあまり詳しくないだけ
0591デフォルトの名無しさん
2011/12/25(日) 01:17:43.42ありがとう
うーん、こういう使い方があるのかと驚いた
使い込めばloopのようにしっくり来るようになるかも…?
>>588
Norvigの話をふと思い出した
((Pythonで) 書く (Lisp) インタプリタ)
http://www.aoky.net/articles/peter_norvig/lispy.htm
0592デフォルトの名無しさん
2011/12/25(日) 09:55:56.57arcを触った後にまた読むと読み方も変わるね。
真面目に(簡潔さの)プログラミング言語の比較をやるのはおもしろいのかもしれないなあ。
「(1)一ヶ月かかるプログラムで比較しろ」と言うけど、「(2)プログラミング言語間の相対
的な力を正確に比べるのはまず不可能だということになる。」とも言っているから(1)を
大きいシステムで試せという話に置き換えて、ちょっと小ぶりだけどLispの処理系作りで
試すのは良いことかもしれない。
So any language comparison where you have to meet a predefined spec is testing
slightly the wrong thing.
(だから、あらかじめ決められた仕様に合わせてコードを書くという形式の言語間の比較は、
少し的を外している。)
とあるけど、slightlyなわけでLispの処理系作りでいいんじゃねえと思った。いや、むしろ
比較しやすいシステムな気がする。
あと最初に仕様がまったくないシステムなんてないだろ。未知の問題があったとしても既存の
解法のベースがあってそれを応用して解くわけだし。天才数学者をさんざん殺してきたフェル
マーの定理クラスの問題を解くという話なのかな。言語で解ける射程距離って意識下/無意識
下で分かって解くことが始まるから仕様って頭の中にあるよね。
0593デフォルトの名無しさん
2011/12/25(日) 10:15:39.39Lispインタプリタを実装できないPythonは糞だな。
0594デフォルトの名無しさん
2011/12/25(日) 15:10:09.06誤読も甚だしい。
0595デフォルトの名無しさん
2011/12/25(日) 17:38:24.520596デフォルトの名無しさん
2011/12/25(日) 18:22:09.880597デフォルトの名無しさん
2011/12/25(日) 18:42:17.58Schemeよりよっぽど複雑なPython処理系をPythonで書いたりしてるのに。
0598デフォルトの名無しさん
2011/12/25(日) 19:15:47.950599デフォルトの名無しさん
2011/12/25(日) 20:00:19.76その解釈はこちらの意図と違う。「よっぽど複雑な」が掛かるのはPython。
Pythonで実装してるPythonが知りたいなら、例えば名前がエロいPyPyがそう。
PyPyとかPychinkoとかPython使いエロ過ぎ。
Lisperももっとエロくなる必要があると思う。pgのeroとかじゃエロさが足りねーよ。
0600デフォルトの名無しさん
2011/12/25(日) 20:21:19.81日本ローカルだけでman lisp*って充実しないか。manで引けるって便利だよなあ。
ドキュメントの置き方的に問題があるのかもしれないけど。
Overview
perl Perl overview (this section)
perlintro Perl introduction for beginners
perltoc Perl documentation table of contents
Tutorials
perlreftut Perl references short introduction
perldsc Perl data structures intro
perllol Perl data structures: arrays of arrays
perlrequick Perl regular expressions quick start
perlretut Perl regular expressions tutorial
perlboot Perl OO tutorial for beginners
perltoot Perl OO tutorial, part 1
perltooc Perl OO tutorial, part 2
perlbot Perl OO tricks and examples
0601デフォルトの名無しさん
2011/12/25(日) 20:21:44.310602デフォルトの名無しさん
2011/12/25(日) 20:23:45.480603デフォルトの名無しさん
2011/12/25(日) 22:04:57.56ooopyもあるんだぜ。そりゃホルスタインは男の夢だが
0604デフォルトの名無しさん
2011/12/25(日) 22:05:57.51'((A B C D) (E F G H) ...) -> '(A B C D E F G H ...)
の加工を行いたいのですが、関数をどのように組めばいいですか?
0605デフォルトの名無しさん
2011/12/25(日) 22:06:24.57appendか?
0606デフォルトの名無しさん
2011/12/25(日) 22:14:51.32Common LispかSchemeかは知らないが、appendをapplyすればおk。
ただし、関数の引数の最大数の制限に掛かるから、巨大なリストには他の方法を使うこと。
http://www.aiai.ed.ac.uk/~jeff/lisp/cl-pitfalls から引用すると、
(reduce #'append list-of-lists :from-end t)
(mapcan #'copy-list list-of-lists)
とか。Schemeならfold系の手続きを使えばreduceと同じことができる。
0607デフォルトの名無しさん
2011/12/25(日) 22:16:22.30(apply #'append '((0 1 2) (3 4 5)))
;=> (0 1 2 3 4 5)
0608デフォルトの名無しさん
2011/12/25(日) 22:23:30.490609デフォルトの名無しさん
2011/12/25(日) 22:30:15.72cofee-p のあれからいくと...
0610デフォルトの名無しさん
2011/12/25(日) 23:36:00.24なかったような
0611デフォルトの名無しさん
2011/12/25(日) 23:39:39.27失格だ
(define (mapappend func . args)
(if (memv '() args)
'()
(append (apply func (map car args))
(apply mapappend func (map cdr args)))))
0612デフォルトの名無しさん
2011/12/25(日) 23:54:23.190613デフォルトの名無しさん
2011/12/25(日) 23:58:17.690614デフォルトの名無しさん
2011/12/26(月) 00:25:28.38同性どうしならヤダな。
0615デフォルトの名無しさん
2011/12/26(月) 00:45:26.84PyPy
Pychinko
Pypants
0616デフォルトの名無しさん
2011/12/26(月) 00:57:03.260617デフォルトの名無しさん
2011/12/26(月) 02:38:10.370618デフォルトの名無しさん
2011/12/26(月) 03:04:44.40(list 'matrix 数値)
とか
(vector (vector 数値))
とか
(vector 数値)
とか
というか計算が一番速いのはどれ?
0619デフォルトの名無しさん
2011/12/26(月) 04:27:35.55(define (apply-values proc args-expr)
(call-with-values (lambda () args-expr) proc))
なんてのあるけど、どうせならsrfiかなんかに登録されてほしい。
0620デフォルトの名無しさん
2011/12/26(月) 10:49:07.18Common LispやSchemeで行列演算とかしたことないけど、
本気で性能を気にするなら、disassembleして生成されるインストラクションを見た方が良い。
リストはインデックスアクセスの計算量的に不利だから、あんま使われんだろうとは思う。
ベクタのベクタと単一のベクタは生成時のコスト以外あんま変わらん気がするけど、
処理系によってベクタの実装に差があると思うから、その処理系で実際試してみないと何とも。
処理系のコード読んでみるのも良いかもしれない。ベクタへのアクセサとかの。
0621デフォルトの名無しさん
2011/12/26(月) 16:35:21.51arrayで型宣言して(speed 3)(safety 0)すればそれなりのコードは出るよ。
Schemeはsrfi-25があるけど、速度はわからん。
0622デフォルトの名無しさん
2011/12/26(月) 16:40:12.330623デフォルトの名無しさん
2011/12/26(月) 16:57:14.78Racketはサポートしてるけど、リファレンス実装ぽいなー。
Gaucheはgauche.arrayでSRFI-25とAPIは揃えつつ独自の実装してるっぽいね。
0624デフォルトの名無しさん
2011/12/26(月) 17:06:03.870625デフォルトの名無しさん
2011/12/26(月) 17:07:07.750626デフォルトの名無しさん
2011/12/26(月) 17:28:08.070627デフォルトの名無しさん
2011/12/26(月) 19:35:05.74ありがとうございます。
助かりました。
0628デフォルトの名無しさん
2011/12/26(月) 21:12:24.95(直後に改行が来ていたら次の行の非空白文字につなぎます)
どういう処理ですればいいのでしょうか。dは一つだけ来て二つ以上は続きません。
a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3
a1a2 cdb1b2b3 ; cd b -> cdb
c1c2c3 d1d23 ; 行末のd -> 次の行へ
de1e2e3 f1f2f3 ; ->行頭にdを追加
ファイルから一文字ずつ読み込んでcdとdが来たら非空白文字まで出力を控え、
非空白が来たときにそれとともに出力という原始的な方法を考えたのですが
もっと効率のよい手法はあるでしょうか
0629デフォルトの名無しさん
2011/12/26(月) 21:25:38.35Schme to readable C++
に型推論を導入
まだ未完成だけど時間切れになってしまったのでやもえず公開
0630デフォルトの名無しさん
2011/12/26(月) 23:06:07.79> もっと効率のよい手法はあるでしょうか
具体的に何の効率なの?
実効速度の事なら、よっぽどまずいコーディングしない限り、
速くなったり遅くなったりする要素は殆どないけれども。
0632はちみつ餃子 ◆8X2XSCHEME
2011/12/26(月) 23:28:53.00(display
(regexp-replace-all
#/(c?d)([ \n])/
"a1a2cd b1b2b3
c1c2c3 d1d23d
e1e2e3 f1f2f3"
(^[m]#`",(m 2),(m 1)")))
0633デフォルトの名無しさん
2011/12/26(月) 23:40:59.310634デフォルトの名無しさん
2011/12/26(月) 23:56:04.87define-syntaxを使って
(map proc list) -> (proc (x list))
のように変換したいです。
簡単に言えば、リストにmapを内在させて見てくれを良くしようと思ったのです。
e.g.)
(define plusone (lambda (x) (+ 1 x)))
;;;通常なら
(map plusone '(1 2 3)) ;;;=>'(2 3 4)
;;;やりたい
(plusone (まくろ '(1 2 3))) ;;;=>'(1 2 3)
0635デフォルトの名無しさん
2011/12/27(火) 00:05:34.410636デフォルトの名無しさん
2011/12/27(火) 00:08:32.940637デフォルトの名無しさん
2011/12/27(火) 00:28:53.24使いましたがリスト先頭のみ処理されました。
0638デフォルトの名無しさん
2011/12/27(火) 00:33:43.11ありがとうございます。
0639デフォルトの名無しさん
2011/12/27(火) 00:53:13.560640デフォルトの名無しさん
2011/12/27(火) 01:55:16.480641デフォルトの名無しさん
2011/12/27(火) 17:28:00.78どこかに詳しい説明はありませんか
http://search.cpan.org/~rbs/XML-Filter-Essex-0.01/lib/XML/Essex/Model.pm
を見るとどうもjames clark's notationは別物のように思えるのですが
0642デフォルトの名無しさん
2011/12/27(火) 17:45:55.73http://www.jclark.com/xml/xmlns.htm
では足りないのかい?
0643デフォルトの名無しさん
2011/12/27(火) 17:49:55.17ttp://jp.rubyist.net/magazine/?0012-qwikWeb#l14
これだけだな。
確か高林氏が最初に「わびさび方式」を紹介した時に、氏のコードが生成してるスタイルについて
そのように呼んでた記憶があるんだが、氏の勘違いじゃなかろうかと俺は思っている。
字下げ付けないでべたっと生成してるぶんにはさほどでもないが、字下げを付けようとしたら
割と変態っぽくなった記憶がある(まぁPPなんて複雑になりたがるもんだけど)。
0644641
2011/12/27(火) 22:48:00.530645デフォルトの名無しさん
2011/12/28(水) 00:16:15.100646デフォルトの名無しさん
2011/12/28(水) 14:29:47.83これのlispのスライドにreflectionとあるのですが
>Fully reflective languages are still just research prototypes
>(e.g. Maude), but limited forms of reflection appear in
>several languages (e.g. LISP, Prolog, Python)
これはどういうことなのでしょうか?
0647デフォルトの名無しさん
2011/12/29(木) 13:06:33.10[腐lisp]腐女子のためのlisp入門 #0 - Oh! Can Not Diary
http://piro.hatenablog.com/entry/2011/12/28/232146
0648デフォルトの名無しさん
2011/12/29(木) 13:20:58.48腐はともかくとして、今時elispってのはこれまた微妙な。
0649デフォルトの名無しさん
2011/12/29(木) 14:50:37.28ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
0650デフォルトの名無しさん
2011/12/29(木) 15:06:15.26社会人でも予選は参加可能らしいしやってみれば?
時間制限あるしsbclとか使えば多少有利かもね
0651デフォルトの名無しさん
2011/12/29(木) 17:33:07.120652デフォルトの名無しさん
2011/12/29(木) 17:37:36.79「ほうしゃのうを除去するプログラム作ってくれ」
↓
「を除去するプログラム作ってくれ」
0653デフォルトの名無しさん
2011/12/30(金) 11:42:28.010654デフォルトの名無しさん
2011/12/30(金) 12:07:30.67>R6RSは本気で黒歴史にする方向
詳しく聞きたい
0655デフォルトの名無しさん
2011/12/30(金) 16:35:22.180656デフォルトの名無しさん
2011/12/30(金) 16:59:16.850657デフォルトの名無しさん
2011/12/30(金) 18:50:38.470658デフォルトの名無しさん
2011/12/30(金) 23:54:15.030659デフォルトの名無しさん
2011/12/31(土) 01:08:33.130660デフォルトの名無しさん
2011/12/31(土) 01:16:29.67UIいじるのは完全に死亡フラグ
0661デフォルトの名無しさん
2011/12/31(土) 01:18:26.330662デフォルトの名無しさん
2011/12/31(土) 02:43:46.810663デフォルトの名無しさん
2011/12/31(土) 02:55:14.14あれはLispではあるけど、もうSchemeじゃない。RnRSをサポートしてても。
0664デフォルトの名無しさん
2011/12/31(土) 12:10:07.16lua上で動くschemeがあるので
iphoneでも無料でscheme動かすことできる
0665デフォルトの名無しさん
2011/12/31(土) 12:44:02.990666デフォルトの名無しさん
2011/12/31(土) 13:06:19.87だとすると、結局のところschemeのエッセンスって何なの?
0667デフォルトの名無しさん
2011/12/31(土) 13:21:55.67実装して楽しいことじゃね?
0668デフォルトの名無しさん
2011/12/31(土) 13:48:45.980669デフォルトの名無しさん
2011/12/31(土) 16:49:22.06純粋な計算機科学の話ではなくて、どちらかと言えば政治的な話。
"a dialect of Lisp and a descendant of Scheme"のRacketの処理系であって、
今後もRnRS Schemeをサポートするけど、それは彼らにとって一番の目的じゃない。
0670デフォルトの名無しさん
2011/12/31(土) 22:39:05.56テキストファイルの内容をテキストとしてそのまま出力するcgiと
ダウンロードページのように、アクセスすると指定したtar.gzをダウンロードさせるcgiを作りたいのですが
どういう風にすればいいのでしょうか
0671デフォルトの名無しさん
2011/12/31(土) 22:51:56.150672デフォルトの名無しさん
2011/12/31(土) 23:28:54.18の部分を何に変えても同じことだな
0673デフォルトの名無しさん
2011/12/31(土) 23:55:16.29書き出せばいい。
0674デフォルトの名無しさん
2012/01/01(日) 00:06:12.05ありがとうございました
0675デフォルトの名無しさん
2012/01/01(日) 14:58:10.320676デフォルトの名無しさん
2012/01/01(日) 15:47:38.47アプリつくれるんだっけ?
0677デフォルトの名無しさん
2012/01/01(日) 16:03:17.95高校生の時を思い出したわ。
今の時代はこんなの中学生か小学生かな。
0678デフォルトの名無しさん
2012/01/01(日) 17:05:47.37>>>675
>アプリつくれるんだっけ?
単にどこでもスキームコードが書けるだけみたい。
0679デフォルトの名無しさん
2012/01/01(日) 22:00:21.150680デフォルトの名無しさん
2012/01/06(金) 15:11:07.420681デフォルトの名無しさん
2012/01/06(金) 15:23:00.76結局、どっちの挙動が正しい挙動なの?
0682デフォルトの名無しさん
2012/01/06(金) 15:27:02.330683デフォルトの名無しさん
2012/01/06(金) 16:50:27.30どっちもどっち
0684デフォルトの名無しさん
2012/01/06(金) 17:17:36.26Some nice paperz on delimited continuations and first-class macros
0685デフォルトの名無しさん
2012/01/08(日) 19:45:58.29無限ループから帰ってこなくなるのは
自分の使い方が悪いだけなんだろうか
0686デフォルトの名無しさん
2012/01/08(日) 21:34:21.86github
0687デフォルトの名無しさん
2012/01/08(日) 23:30:34.590688デフォルトの名無しさん
2012/01/08(日) 23:44:01.520689デフォルトの名無しさん
2012/01/08(日) 23:48:31.330690デフォルトの名無しさん
2012/01/09(月) 01:21:07.60なんのメモを参照しているの?
0691デフォルトの名無しさん
2012/01/09(月) 06:07:02.560692デフォルトの名無しさん
2012/01/09(月) 07:40:07.85「仕様」が本体なので、仕様だけ見て独自実装している処理系も多い。
slibはSCMの作者が中心となってメンテしているライブラリの集合。仕様に
こだわるよりも実装が主体。
両者は基本的に無関係だけど、SCMの作者がslibの一部の仕様をsrfiとして
提出して承認されているものはある。
0693デフォルトの名無しさん
2012/01/11(水) 06:38:20.67パイプとportつなげたいだけなのに出来ないとか
0694デフォルトの名無しさん
2012/01/11(水) 14:24:29.54(lambda (out)
(call-with-input-string "aaaaaa"
(lambda (in)
(exec-shell-pipe "cat -" in out)
))))
みたいなことしたいのだけどRacketはできないみたい
Gaucheならできる?
0695デフォルトの名無しさん
2012/01/11(水) 14:29:27.070696デフォルトの名無しさん
2012/01/11(水) 14:47:53.08動かないshell コマンドがある
0697デフォルトの名無しさん
2012/01/11(水) 16:32:57.47javascriptでできたシンタックス・ハイライトはありますか?
webでそれらのソースを見せたいので
0698デフォルトの名無しさん
2012/01/11(水) 17:52:28.72see demo at http://pygments.org/
0699デフォルトの名無しさん
2012/01/12(木) 08:55:25.13なにいってんだ?
0700デフォルトの名無しさん
2012/01/12(木) 15:22:37.44Racketで694に相当するのが(process "cat")だけど
実行してみると何処がおかしいのかわかると思うよ
0701デフォルトの名無しさん
2012/01/13(金) 00:48:18.63$ cat foo.ss
(define-values (p stdout stdin stderr)
(subprocess #f #f #f "/bin/cat"))
(display "aaaaaa\n" stdin)
(close-output-port stdin)
(display (read-line stdout))
(display "\n")
$ racket -f foo.ss
aaaaaa
0702デフォルトの名無しさん
2012/01/13(金) 03:34:47.61ls, top, cat hoge.log | tail -n 99 | grep abとかは、どうやるの?
0703デフォルトの名無しさん
2012/01/13(金) 10:48:07.240704デフォルトの名無しさん
2012/01/13(金) 20:46:41.56すみません、それはpythonでファイルを新たに生成するものではないでしょうか
0705デフォルトの名無しさん
2012/01/14(土) 07:08:13.540706デフォルトの名無しさん
2012/01/14(土) 08:15:50.26単独で生成もできるし、jekyllみたいなものから静的なhtml作成
もできるよ。common lisp,scheme,clojure含めて対応言語が多いので、
重宝する。705にも紹介されてるよ。
0707デフォルトの名無しさん
2012/01/14(土) 09:23:26.10自分もブログサービスで簡単に利用できるのを探したりした。
google-code-prettify
http://code.google.com/p/google-code-prettify/
なんかは、Lisp界隈で何度か使われてるのを見たことがある。
ただ、厳密に構文解析してるわけじゃないみたいなので、
何かのタイミングでハイライトが崩れる場合もあったと記憶してる。
0708デフォルトの名無しさん
2012/01/14(土) 12:53:31.40ありがとうございます。
>>707のおっしゃるとおり手軽に行いたかったのです
あげてもらったものを試してみます
0709デフォルトの名無しさん
2012/01/16(月) 16:31:35.370710デフォルトの名無しさん
2012/01/16(月) 17:13:42.030711デフォルトの名無しさん
2012/01/16(月) 19:28:17.79大変わかりやすいエントリーなのですが、読んで疑問を持ちました
1.lispやschemeとycombinatorはどういうところで結びつくのでしょうか
2.ところでpaul grahamが設立したy combinatorはy combinatorの意味と何らかの関係があるのですか
0712デフォルトの名無しさん
2012/01/17(火) 01:39:33.32(define (Y F)
((lambda (s) (F (lambda x (apply (s s) x))))
(lambda (s) (F (lambda x (apply (s s) x))))))
(define length
(Y (lambda (f)
(lambda (ls)
(if (null? ls) 0 (+ 1 (f (cdr ls))))))))
0713デフォルトの名無しさん
2012/01/17(火) 10:04:35.842についてはpaulが答えてる。 http://ycombinator.com/faq.html
Why did you choose the name "Y Combinator?"
The Y combinator is one of the coolest ideas in computer science. It's
also a metaphor for what we do. It's a program that runs programs;
we're a company that helps start companies.
0714デフォルトの名無しさん
2012/01/17(火) 17:16:22.14ありがとうございます。わかってすっきりしました。
0715デフォルトの名無しさん
2012/01/18(水) 10:37:22.18Lispからはもう新しいものは生まれない
0716デフォルトの名無しさん
2012/01/18(水) 12:24:53.660717デフォルトの名無しさん
2012/01/18(水) 12:40:32.37大したものじゃないな
0718デフォルトの名無しさん
2012/01/18(水) 15:36:39.08のお勧め言語は?
0719デフォルトの名無しさん
2012/01/19(木) 01:07:41.25俺一人が気分良く使えればそれでいいし。
0720デフォルトの名無しさん
2012/01/20(金) 02:51:38.27文字列 "aabb" から同じ名前の変数に何か割り当てたい
(define aabb "some")
string->symbolで変換しても無理だったのだけど何か方法ないのでしょうか
0721デフォルトの名無しさん
2012/01/20(金) 06:39:10.990722デフォルトの名無しさん
2012/01/20(金) 09:01:00.29vectorとlistは参照渡し
それ以外は値渡し
なんかすっきりしない
0723デフォルトの名無しさん
2012/01/20(金) 09:44:03.250724デフォルトの名無しさん
2012/01/20(金) 12:58:50.56(lambda _ (let ((x (car _))) (set! x)))は分かる
パラメータを宣言するのをやめてローカル変数を宣言すればいい
0725デフォルトの名無しさん
2012/01/20(金) 13:11:18.050726デフォルトの名無しさん
2012/01/20(金) 13:12:42.870727デフォルトの名無しさん
2012/01/20(金) 13:39:15.59ローカル変数を作ってるのは実は lambda の方
0728デフォルトの名無しさん
2012/01/20(金) 14:18:10.31から
((lambda (x) x) 1)
に変換するこんなマクロ一度は作るよね
0729デフォルトの名無しさん
2012/01/20(金) 14:23:54.29引数を評価しないで渡すマクロも無いほうがいいと思うだろうな
0730デフォルトの名無しさん
2012/01/20(金) 14:56:52.910731デフォルトの名無しさん
2012/01/20(金) 14:58:08.78全くと言っていいほど役に立ってないのに
なんでLisperはあんなに威張りくさっていて態度がでかいんだろう
0732デフォルトの名無しさん
2012/01/20(金) 15:03:26.050733デフォルトの名無しさん
2012/01/20(金) 15:03:33.380734デフォルトの名無しさん
2012/01/20(金) 15:05:07.77ろくなことはない。愚かな行為ではあるな
0735デフォルトの名無しさん
2012/01/20(金) 15:11:48.97その理論でマクロは説明できないの?
quoteの値渡しとか
0736デフォルトの名無しさん
2012/01/20(金) 17:10:34.30(define (push stack objct) (set! stack (cons objct stack)))
(define (pop stack) (prog1 (car stack) (set! stack (cdr stack))))
やりたいことはこう
(define (make-stack) (list '()))
(define (push stack objct) (set-car! stack (cons objct (car stack))))
(define (pop stack) (prog1 (caar stack) (set-car! stack (cdar stack))))
0737デフォルトの名無しさん
2012/01/20(金) 17:12:42.80世の中の役になんてたたんでええわ。
0738デフォルトの名無しさん
2012/01/20(金) 17:58:32.60おまえもぉ〜いつかは〜世の中の〜♪、傘になれよと教えてくれた〜♪
0739デフォルトの名無しさん
2012/01/20(金) 18:56:03.80thisやselfを渡すOOを理解していない初心者はそういう書き方はしない
stackを自由変数にするだろう
0740デフォルトの名無しさん
2012/01/20(金) 22:56:51.52引数で混乱するなら戻り値を使え
内部イテレータはオワコン
0741デフォルトの名無しさん
2012/01/21(土) 00:44:30.820742デフォルトの名無しさん
2012/01/21(土) 00:53:55.200743デフォルトの名無しさん
2012/01/21(土) 00:56:46.62コンテンツ渡し
コンテナのコンテンツ渡し
0744デフォルトの名無しさん
2012/01/21(土) 23:28:14.88http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html
SICPがPythonで学べるようになって
Schemeの唯一の存在価値がなくなってしまった
0745デフォルトの名無しさん
2012/01/21(土) 23:39:55.850746デフォルトの名無しさん
2012/01/22(日) 00:15:40.260747デフォルトの名無しさん
2012/01/22(日) 03:06:55.510748デフォルトの名無しさん
2012/01/22(日) 12:50:39.850749デフォルトの名無しさん
2012/01/22(日) 14:13:33.040750デフォルトの名無しさん
2012/01/22(日) 14:17:06.57R6RSみたくならない?
0751デフォルトの名無しさん
2012/01/22(日) 14:39:31.010752デフォルトの名無しさん
2012/01/22(日) 14:46:33.010753デフォルトの名無しさん
2012/01/22(日) 15:14:59.270754デフォルトの名無しさん
2012/01/22(日) 15:17:03.430755デフォルトの名無しさん
2012/01/22(日) 15:33:41.720756デフォルトの名無しさん
2012/01/22(日) 15:35:37.500757ハンバーグ餃子 ◆8X2XSCHEME
2012/01/22(日) 15:59:42.38vector-set! を無いところから作るのは無理だけど、
list-set! を作るのは難しくないのでそれほど困ることは無いはず。
R5RS の時点では言語コアに入れるほどのものじゃないと思われたんじゃないかな。
R6RS ではペアの破壊は避けて欲しい雰囲気になってる。
set-car! や set-cdr! でさえライブラリの僻地に追い払ったくらいだから、
更に list-set! を追加しようとは思わないだろ。
0758デフォルトの名無しさん
2012/01/22(日) 16:09:40.240759ハンバーグ餃子 ◆8X2XSCHEME
2012/01/22(日) 16:22:57.42と思ったけど、これはまだ Draft の段階だな。
0760デフォルトの名無しさん
2012/01/22(日) 16:23:16.48今となってはSchemeでSICPやるのは
時代遅れの教える側の趣味の押しつけでしかない
選択授業でやるならまだしも
必修でやるのは職権乱用だよな
0761デフォルトの名無しさん
2012/01/22(日) 19:15:58.88翻訳終わるまで2ちゃんねるには書き込まなくていいからね。さもなくば死ねよ。
0762デフォルトの名無しさん
2012/01/22(日) 19:17:48.990763デフォルトの名無しさん
2012/01/22(日) 19:18:16.48どこも英語でやっているでしょ。
0764デフォルトの名無しさん
2012/01/22(日) 21:08:22.16ピッチャーの球種がストレートとカーブしかなかった時代の強打者。
球種が増えた現代の野球に対応出来ないでいるのに居座っていて、
後進にも時代遅れの打ち方を強要している。
もういい加減引退して野球博物館に展示されるべき。
0765デフォルトの名無しさん
2012/01/22(日) 21:22:09.900766デフォルトの名無しさん
2012/01/22(日) 21:23:58.730767デフォルトの名無しさん
2012/01/22(日) 21:27:08.010768デフォルトの名無しさん
2012/01/22(日) 21:28:58.360769デフォルトの名無しさん
2012/01/22(日) 21:33:45.700770デフォルトの名無しさん
2012/01/23(月) 08:12:20.18秀丸はLinuxに移植されないの?
>>760
「中学・高校で古典・漢文は時代遅れの教える側の趣味の押しつけでしかない」と
言っているようなもんだよなあ。
日本人が学校ネタで世代間を越えて語れるようにSchemeでSICPやるのはそういう
面でも意味がある気がするけどなあ。あとLispは文献の資産もたくさんあんだろ。
SchemeでSICPやめたのは失敗だったとあとで気づく気がする。
というか、SICPぐらい高校生のうちに読んでおけよと思うんだが。
0771デフォルトの名無しさん
2012/01/23(月) 08:55:38.97拡張性もschemeより低いし、数年毎に全面改訂必須になりそう。
schemeなら新技術が出てもマクロを足すだけで済む。
0772デフォルトの名無しさん
2012/01/23(月) 09:02:22.950773デフォルトの名無しさん
2012/01/23(月) 09:03:18.87最後の一文てのは>>770のことな
0774デフォルトの名無しさん
2012/01/23(月) 09:07:01.90> Pythonって規格もないし、後方互換を切り捨てたばかりだろ。
> 拡張性もschemeより低いし、数年毎に全面改訂必須になりそう。
> schemeなら新技術が出てもマクロを足すだけで済む。
同意。
何よりもプログラミング言語を構成している基本概念(の中で静的なデータ型を除いて)を
Schemeほど学習者にとって認識しやすくしている言語は他にほとんどないんだよね。
Scheme以外のほとんどの言語は実用を意識し過ぎて最初からシュガーを纏った形であったり
概念の要素ごとでなく複合的な形でしか提供されていない場合が多い。
しかも言語の構文まで拡張する(それも普通の意味でのマクロよりももっと系統的な方法で)のを
可能にしているのはScheme以外には存在しない。
実用プログラムを書くだけならば他の言語でも良い(あるいは他の言語の方が便利)かも知れないが、
プログラミング言語とは何かを一度きちんと理解して、表面的には色々と異なる様々な言語に出くわしても
自在に応用が利くようなレベルまで深く修得するには、Schemeを学んでおくのは時間の無駄ではない。
プログラミング言語やプログラミングに関する優れた教科書でSchemeを採用しているのが何冊もあるのは
何故なのかか?という事をもっと真剣に考えるべきだし、それは偶然ではないんだよね。
0775デフォルトの名無しさん
2012/01/23(月) 09:11:44.65SICPのスコープには入ってないが、LispのマクロのパワーはPythonには全く無いからな。
0776デフォルトの名無しさん
2012/01/23(月) 10:26:18.360777デフォルトの名無しさん
2012/01/23(月) 12:40:55.95致命的に駄目じゃん
0778デフォルトの名無しさん
2012/01/23(月) 12:45:09.61うちの教授なんてLisp脳が酷すぎて他の言語が理解できなくなっているし
0779デフォルトの名無しさん
2012/01/23(月) 12:49:32.86>言っているようなもんだよなあ。
古典・漢文はいらんだろ。少なくても時間を減らすべき。
0780デフォルトの名無しさん
2012/01/23(月) 12:52:41.600781デフォルトの名無しさん
2012/01/23(月) 12:52:56.67後方互換を切り捨てたのは今までで一度だけだし、もうだいぶ前のことだ。
規格が分裂しているSchemeよりかなりましだろ。
0782デフォルトの名無しさん
2012/01/23(月) 13:01:42.34Schemeを押しつけるための教科書だろ
0783デフォルトの名無しさん
2012/01/23(月) 13:29:14.37Schemeは静的型付けを押しつけない。
また、文字列処理を押しつけないためにsymbolとconsを使う。
しかしquoteの分かりにくさは文字列を普通に使うよりも酷くなった。
0784デフォルトの名無しさん
2012/01/23(月) 13:31:44.06構文にあれこれ気を使う必要がなく、ラムダ式や高階関数を使うことのハードルが低く、
関数型パラダイムだけでコードを書くこともできるが、データ構造の破壊的更新も
やろうと思えばできる、という言語が、あればね。
>>782 は具体的にそういう言語があるなら示してみろ。できないなら黙れ。二度と書き込むな。
0785デフォルトの名無しさん
2012/01/23(月) 13:35:00.31Schemeとかって手続きがデフォルトでポリモーフィックじゃない(オブジェクト指向じゃないから当たり前だが)のが
使いにくいと思ってるんだけど、Schemeを使ってる人達はそんなことは思ってないの?
(vector-ref vec i)より
vec.ref(i)の方が良いと思いません?vecもダブらないし。
0786デフォルトの名無しさん
2012/01/23(月) 13:35:06.47抵抗やコンデンサ、トランジスタを集めてきてハンダ付けして実験することで
電子回路を理解するのと同じように、計算のしくみを部品から組み立てて
理解できるようにするものだったそうな。だから敢えて機能が少なく簡単に仕様が
説明できるSchemeを使ったと。最初の講義の30分で言語の説明を終えられる、
だったかな?
けれど今の工学をやるなら、バラバラのパーツを集めてくるだけじゃなくて、
ブラックボックスになっているチップやモジュールを使わざるを得ない。それと
同様に、言語でもありもののライブラリを集めて使うことが重要になってきたと。
0787デフォルトの名無しさん
2012/01/23(月) 13:41:59.43確かにそれひとつのみを考えたらそうなんだけど、そうやって、素敵機能を
ひとつ追加するごとに新しい構文を追加していったら、結果がどうなるかというと
だいたい見えている。
たいていの言語は、あれもこれも追加するなんてことはしない、という方針によって
カオスになるのを避けているわけだけど、Lisp 一族は、構文を追加しない、という
方針にしたということ。
>>786
これかな?
ttp://d.hatena.ne.jp/leque/20090326/p1
0788デフォルトの名無しさん
2012/01/23(月) 13:52:14.00言語なんてこの先ずっと使うものだから(Scheme以外は)
ちゃんとしたの選んだ方がいいよな。
0789デフォルトの名無しさん
2012/01/23(月) 13:53:17.07Lisp語族を使う人の中でもそういう記法を好む人もいるよ。度々見掛けるネタ。
ただ、vec.ref(i)って、(vector-ref vec i)の構文糖以上のものではないから、
大抵はリーダーマクロとか使って、リーダー部分をいじって変換するだけ。
言語仕様に入れるほどのものじゃないと思う。ライブラリや処理系のレイヤ。
0790デフォルトの名無しさん
2012/01/23(月) 13:54:57.31みんなが好き勝手に作ってしまって
言語仕様ですらひとつにまとまらない
0791デフォルトの名無しさん
2012/01/23(月) 14:05:20.17デフォルトの文法に従うのではなく、問題領域を簡潔に表記できる言語を作ってから書く。
最小限の部品で言語を作るための言語。文法が多いと専用の言語を作る時に邪魔になる。
但し大量の俺々schemeができて互換性がなくなる問題点がある。
R7RSが解決する予定。
0792デフォルトの名無しさん
2012/01/23(月) 14:05:30.04横に長くなるのが嫌なら、手続き的に書くだけで充分に縦長になるので
その上に更にOOで幅を狭くしたいとは思わない
0793デフォルトの名無しさん
2012/01/23(月) 14:07:12.710794デフォルトの名無しさん
2012/01/23(月) 14:10:53.58SICPの話しているんかと思ったんだけど
SICPにCommon Lisp関係ないしょ
0795デフォルトの名無しさん
2012/01/23(月) 14:13:03.24分野によって使用言語を使い分けるのが常識だと思うけど。
言語の文法は優劣でなくて選択で、ある点で有利な文法は他の点では劣ってるのが普通。
言語の作り方を見せるという点でscheme以上の言語はいまのところない。
0796デフォルトの名無しさん
2012/01/23(月) 14:16:12.500797デフォルトの名無しさん
2012/01/23(月) 14:22:53.73それにSICPはschemeの教科書ではないよ。
あれはCSの教科書。schemeの理由は上にあるように、CSを教える用途に優れてたから使っただけ。
0798デフォルトの名無しさん
2012/01/23(月) 14:36:25.380799デフォルトの名無しさん
2012/01/23(月) 14:38:47.940800デフォルトの名無しさん
2012/01/23(月) 14:49:33.45Lispは文法の純潔さを選んでいるわけですね。
>>789
あくまで個人的な印象だけど、メッセージ送信の文法は構文糖以上だと思うな。
名前空間も絡んで来るし。
>>791
確かに選べるけど、それらが役に立つのは自分で新しくオブジェクトを書くときか
その文法が使われているライブラリを利用するときだけで、
既存のデータ型を好きな文法でシームレスに扱える訳じゃないから
あまり嬉しくなかったりする。
>>792
長さは置いておいても、意味が同じ手続きをプログラマ側で使い分けないといけないのが
面倒に感じるんだよね。
0801785
2012/01/23(月) 15:03:18.43ちょい追加。個人的な印象ってのはよくない。
vec.refからvector-refに展開するにはvecの型と対応する手続きを知ってないといけないから、
静的にはできないし構文糖とは言えないんじゃないかな。
0802デフォルトの名無しさん
2012/01/23(月) 15:46:58.18行列計算や数値計算の枠組みを共通化してほしい
0803デフォルトの名無しさん
2012/01/23(月) 15:49:49.77>>618
0804デフォルトの名無しさん
2012/01/23(月) 16:08:39.28unicodeとiconvのどっちかを捨てろと言われたらunicodeを捨てる
0805デフォルトの名無しさん
2012/01/23(月) 16:20:16.280806デフォルトの名無しさん
2012/01/23(月) 16:33:45.07端折り過ぎたというか、言葉が足りなくて色々考えさせたみたいで申し訳ない。
メソッドのディスパッチとか、そういった途中経過も勿論含めての話。
オブジェクトとメソッドへの引数を伴った、単なる手続きの呼び出しと、
最終的に等価になるのは同意してもらえると思うんだけど、どうだろうか。
それで納得してもらえたら、あとは>>789の最後の部分に続く。
0807デフォルトの名無しさん
2012/01/23(月) 18:38:29.18ベクトル・行列演算ならBLAS
連立一次方程式ならLAPACK
とFotran由来の共通規格があるじゃないか
0808デフォルトの名無しさん
2012/01/23(月) 19:24:22.02> 古典・漢文はいらんだろ。少なくても時間を減らすべき。
減らさずに土曜日授業もやればいいんだよ。
生物学は物理学との選択で学べず、地学は選択すらできなかった。
大学受験予備校化や実用主義って学問をやる上で邪魔な存在だよ。
実用主義に走りたいなら義務教育が終わったらやる気や才能ある奴が働きやすいようにしたらいい。
就職予備校化している大学は専門学校って名前を変えればいいんだよ。
>>786
なんか作ろうと思ってマイコン関連のスレにずっと常駐しているけど、
ブラックボックスになっているチップやモジュールは好まれず、仕様
公開とか、色々とホワイトボックスになっていないと好まれないじゃん。
オープンなAruduinoがあるけど、どういう位置づけなの?
あと具体的にブラックボックスのモジュールってどういうの?
> 言語でもありもののライブラリを集めて使うことが重要になってきたと。
これってSchemeの得意分野じゃないの。
>>788
そりゃあ、言語選びはもの凄く大事でしょう。
習字の二度書き禁止みたいに無駄に何個も覚えるもんではないからね。
シェルスクリプトbashを覚えちゃったけど、kshを覚えたかったなあ。
0809デフォルトの名無しさん
2012/01/23(月) 19:30:53.37PowerShellが以外とよかった
0810デフォルトの名無しさん
2012/01/23(月) 21:12:30.80ブラックボックスって言い方が悪かったか。仕様は公開されてるけど、使う時に
チップの中の電位分布の変化を意識したりしないでしょ。ディスクリートで
組む時のような意味では。インタフェースと定格と限界さえ理解してれば、
中身はブラックボックスとして扱っても良いってこと。
SICPの文脈だと、具体的には、MITでは電気電子情報の学生は初年度に
ロボットを作らせることになったのね。そのくらいの複雑度になると、
全てを把握するってのは無理で、出来合いのユニットのインタフェースを
理解して目的に合わせて使いこなしてゆくってことが重要になってくるって話。
> これってSchemeの得意分野じゃないの。
PythonのライブラリとSchemeのライブラリの量を比べてみれ。
Schemeが教育上の効率(言語の説明が省ける)で選ばれたのと同様、
Pythonが教育上の効率(使えるライブラリが既にたくさんある)で選ばれるわけさ。
この現実に不満があるなら、Schemeのライブラリを同じくらい充実させるしかないねえ。
0811デフォルトの名無しさん
2012/01/23(月) 21:30:04.88SICPを教えるかライブラリ利用云々を教えるかっていう、関係ありそうで全然別の話を持ち込んでる人が居ますね
0812デフォルトの名無しさん
2012/01/23(月) 21:36:19.80最初にやるSchemeとPythonの言語の大きさの差なんて誤差のうち
むしろ一般人には規模が大きくてもPythonの方が楽に学べそうだ
0813デフォルトの名無しさん
2012/01/23(月) 22:43:40.59いう話じゃないの。
Pythonを一から教えるなら一年かかると思うし、半年で教えるなら色々と前提条件がつくんじゃないの。
MITのロボットの話だって事前に設計図を読めて書けて安価なマイコン・コンデンサ・モジュールを
組んだりとか、してきてねってことじゃないの。やっていないと物凄い苦労するよって。
人権無視で長時間拘束して大学で4年間教えていいなら教えられるけど、人権ありで4年間だと何も
教えられないんじゃないの。
>>812
なんで楽なのにPython3って普及しないの?
Python3.1になったらみんな使い始めるって計画じゃなかった?
今、 Stable release 3.2.2 / September 4, 2011; 4 months ago (2011-09-04)だよ
。
Pythonに思い入れがなく、ただ覚えやすいという宣伝文句にひっかかって使い出したに過ぎ
ないんじゃないのか。教祖のGuidoが3使えって言っているんだら3使えよ。
教祖に背くと地獄に行くぞ。
0814デフォルトの名無しさん
2012/01/23(月) 23:11:51.340815デフォルトの名無しさん
2012/01/23(月) 23:13:15.55>787 あたりみるとSICP書いて教えてる本人がいってるんじゃね?
0816デフォルトの名無しさん
2012/01/23(月) 23:22:31.560817デフォルトの名無しさん
2012/01/23(月) 23:41:14.71Schemeをやめたのはライブラリがなかったからか
0818デフォルトの名無しさん
2012/01/24(火) 00:25:52.86一方、ライブラリは足りないから古いライブラリは生きのこる
0819デフォルトの名無しさん
2012/01/24(火) 00:51:48.31> 古い言語は捨てられ新しい言語が次々と作られる
かくして世の中は思い付きで作られたポッと出の出来損ない言語とバグだらけの処理系だらけになる。
0820デフォルトの名無しさん
2012/01/24(火) 01:05:05.250821デフォルトの名無しさん
2012/01/24(火) 01:42:18.240822デフォルトの名無しさん
2012/01/24(火) 02:04:31.01でもLispにはライブラリがないから、捨てられるね
だれか、QtをSchemeにバインディングしてくれないかな
0823デフォルトの名無しさん
2012/01/24(火) 04:25:26.260824デフォルトの名無しさん
2012/01/24(火) 06:55:28.14そもそも仕様ができそこない、というゴミ言語が山ほどある時点で、
Schemeがダントツとかありえません。おまえの脳みそが出来損ないw
0825デフォルトの名無しさん
2012/01/24(火) 07:00:03.59ら売れるよ
0826デフォルトの名無しさん
2012/01/24(火) 07:32:29.79全然具体的じゃないがいかにもありそうな話だな
0827デフォルトの名無しさん
2012/01/24(火) 09:15:33.730828デフォルトの名無しさん
2012/01/24(火) 09:17:43.99救世主現る!
解決お願いします。
0829デフォルトの名無しさん
2012/01/24(火) 09:45:11.42仕様ができそこないがどんな意味で言ってるのかわからんが
とりあえず実装数の多さじゃSchemeはダントツだな次点はJavascriptか
0830デフォルトの名無しさん
2012/01/24(火) 10:33:03.39ライブラリ作れっての
0831デフォルトの名無しさん
2012/01/24(火) 11:02:53.14そういう分野では処理系たくさん作られることが重要。
0832デフォルトの名無しさん
2012/01/24(火) 11:18:26.330833デフォルトの名無しさん
2012/01/24(火) 14:00:49.69Chikenは既存のC++ライブラリをくっつけやすいから
違う意味で充実している
0834デフォルトの名無しさん
2012/01/24(火) 15:45:56.760835デフォルトの名無しさん
2012/01/24(火) 15:52:31.82本業がプログラマでなく別の専門を持っている人たちが書いたようなもの、
生物屋さんがゲノムデータベースを簡単に検索して実験データと付き合わせるために
作りましたとか、経済学の人たちがセンサスの情報を統計処理しますとか、
言語学で文献のデジタル化をやっててその解析に使える便利ライブラリですよとか、
そのへんの層の厚さなんだよね。決め手になるのは。Schemeにそれが無いとは
言わないけれど。その分野の専門でない人間が聞き齧り、読み齧りで書いた
ライブラリって、専門の現場のフローに合ってなくて使えないこともままあるし。
現場の人が現場の事情に合わせて書いて、それが蓄積されてるってのはでかいよ。
CS教育の話をしてるんだから関係ないと思うかもしれないが、研究にせよ開発にせよ、
今は別の分野の専門家とコラボしてソフトウェア工学を使ってその分野の問題を解決
する重要性が大きいし、今後もそっちが大きくなる一方だから。
0836デフォルトの名無しさん
2012/01/24(火) 15:57:02.23インタプリタの作り方教えて
リスパーの数を増やすことがCSだから
0837デフォルトの名無しさん
2012/01/24(火) 16:17:03.970838デフォルトの名無しさん
2012/01/24(火) 16:20:06.29メタサーキュラーインタプリタくらいは基礎教養としてスタート前にやっといてくれ、って
くらいの話だと思う。
おいらは自分で何か書くならLispだし、Lisperが増えて欲しいとも思っているが、
だからこそ「それLispにもあるよ」ってタカをくくってる意見には賛同できない。
0839デフォルトの名無しさん
2012/01/24(火) 16:21:37.240840デフォルトの名無しさん
2012/01/24(火) 16:31:59.82http://web.mit.edu/alexmv/6.S184/
てか大学の実験や実習なんて教わってないことだらけで、そんなのは自習するのが前提でしょ。
俺は日本の大学だったけど。
「スタート前にやっといてくれ」はちょっと変か。「講義でやらないけど知らなかったら自分で
やっといてね」くらい。
0841デフォルトの名無しさん
2012/01/24(火) 17:16:07.16読んだ人がいるなら感想を聞きたい
The Scheme Programming Language, 4th Edition http://www.scheme.com/tspl4/
0842デフォルトの名無しさん
2012/01/24(火) 17:59:11.32その辺の層の厚さが一番あるのはRとperl
pythonは正直いまひとつ 劣化matlab
0843はちみつ餃子 ◆8X2XSCHEME
2012/01/24(火) 18:59:38.06日本語版 (3rd だが) なら読んだことがある。
SICP や Little Schemer と違って、 Scheme の言語機能の解説が多くを占める。
C++ にとっての `The C++ Programming Language' みたいなもの。
4th では R6RS を前提とした内容に大幅に改定されているはず。
0844デフォルトの名無しさん
2012/01/24(火) 19:05:02.20非本業プログラマはCL一択でいいと思うんだけどね。gccに匹敵する速さだし、
REPLでelispとも親和性が高い。
>>842
PerlってRみたいに統計関連のツールって豊富なの?
Perlでやると遅くてメモリ食うわで最悪な選択な気がするんだけど。
0845デフォルトの名無しさん
2012/01/24(火) 19:37:11.83えーー
0846デフォルトの名無しさん
2012/01/24(火) 19:38:49.240847デフォルトの名無しさん
2012/01/24(火) 19:40:16.840848SCHEME餃子 ◆8X2XSCHEME
2012/01/24(火) 20:17:45.36色々あるけど、モジュール化をどうするかが一番大きな議題だったように思う。
結果的にライブラリという概念を導入した。
# それさえ出来れば後々の規格改定で機能を追加することになっても、
# ライブラリを分けて共存を図ることもできるという思惑もあったみたいなのに
# R7RS では仕組を変えようとしてるので、おまいらもちつけと言いたい。
# しかも新しい提案も R6RS と劇的な差があるわけでもないし。
それとマクロシステムが拡張されて非健全なマクロ等も書けるようになった。
マクロで問題になる、マクロ展開時にどの環境を使うかという点はフェイズの概念を導入することで解決した。
フェイズはライブラリ単位で決まるので、上述のモジュール化の仕組みとも密接に関連している。
レコードや文字列ポートなど、多くのケースで便利な機能がちょろっと追加された。
R5RS までは小さい言語コアだけ決めて残りは SRFI や各処理系の裁量にお任せという感じだったのが、
ここへ来て方向性が変わった感じがする。
細かいことは↓を参照
http://practical-scheme.net/wiliki/wiliki.cgi?R6RS%3a%E5%A4%89%E6%9B%B4%E7%82%B9
0849デフォルトの名無しさん
2012/01/24(火) 21:13:32.52利用者の割合はどんなんだろ
0850デフォルトの名無しさん
2012/01/24(火) 21:14:06.243版と4版を読んだけど、無難な言語解説書。
深い事は書いてないから、なんたらハンドブック系の価値。
3版なら無料で読める。
http://www.scheme.com/tspl3/
>>842
Fortranも忘れてはいかん。科学屋さんが大量に書いてる。
基本的に専門分野ではRやFortranみたいな特化された言語が使われてる気がする。
0851デフォルトの名無しさん
2012/01/24(火) 21:24:53.984版も無料で読めるような気がするけど
気のせい?
0852デフォルトの名無しさん
2012/01/24(火) 21:26:23.930853デフォルトの名無しさん
2012/01/24(火) 21:31:12.71ごめん、3版しか使ってないから忘れてた。
本文読めるのなら質問しないで良いじゃないか・・・。
0854デフォルトの名無しさん
2012/01/24(火) 22:43:30.92チンコはデカい方がいいだろ。
emacs子と親和性高いのは重要だよ。
0855デフォルトの名無しさん
2012/01/25(水) 02:13:28.44> CS教育の話をしてるんだから関係ないと思うかもしれないが、研究にせよ開発にせよ、
> 今は別の分野の専門家とコラボしてソフトウェア工学を使ってその分野の問題を解決
> する重要性が大きいし、
応用プログラムを書くのとCSを専門として学ぶというのとは目的が全く違う。
数学で確率論やルベーグ積分を学ぶのと保険のアクチュアリーになるのが全く違うように。
今のCSは応用に向いた教育ばかりになってしまっていてCSを専門に学んだはずの人が
趣味や独学でプログラミングに上達した人と大して質的な差がなくなっている。
応用としてのプログラミングなんてものは、パソコン1台あれば専門教育なんて受けなくても勉強して身に着けようと思えば着けられるんだよ。
だって、プログラムを書くだけならば必要な知識はカタログ的な平板で雑多かつ多量の知識(ライブラリとかAPIとかね)なんだから。
そうすると、CSの教育を専門的に受けたというアドバンテージをどこに求めるのか、と言えば
体系的な知識、例えば雑多な様々なプログラミング言語を構成している基本概念やそれらの間の関係をきちんと理解しているとか、
それに基づいた様々な技術(プログラム解析とかね)を体系的に身に着けているといった点に求める事になる。
プログラミングに限らず他の分野でもカタログ的な知識は下手をすると素人マニアの方がプロよりも上だったりするわけだ。
例えば鉄道ヲタクの連中は、△△電鉄の3000型のブレーキは初期型は××製だったが後期型車両からは○○製になり
その結果として制動能力がどれだけ上がって云々なんてのを知っていたりする。下手をすると当の△△電鉄の関係者や
その3000型車両を設計・製造した車両メーカーの技術者よりも型番なんかに関しては詳しかったりする。
だけど、そんな知識を持っていても、その鉄ヲタは電鉄会社の整備主任も車両メーカーの設計技師も務まらない。
何故ならば、彼らに必要な知識は体系的なもの、つまり(科学や)工学だからだ。
今のCS教育は同じカタログ知識の教育に偏重していると思う。これでは素人プログラマと変わらない人材しか育てられない。
Schemeの長所は言語概念を体系的に教えるのに非常に適した言語だという事。だからCS教育に向いているんだ。
0856デフォルトの名無しさん
2012/01/25(水) 02:21:31.15これLisperの主観でしょ
0857デフォルトの名無しさん
2012/01/25(水) 02:29:06.45むしろ大学に行くと教える側の専門に縛られたりするんじゃね?
0858デフォルトの名無しさん
2012/01/25(水) 02:31:27.55大抵の受験生は自分が受かりそうな中で偏差値が高いとか、
家から近いとかで大学選んでそうだし。
0859デフォルトの名無しさん
2012/01/25(水) 02:50:16.59どういうことなんだろうな、Schemeだけで言語概念が云々ってのは。
lispが全てS式だからとか、再帰処理が構文解析器とかにマッチするとか、そんなん?
プログラミング言語論の授業では特定の言語に拘らず色んなパラダイムを紹介されたけどねえ
それと実装は別だな。特別に指定されない提出物なら全部pythonで書いてる
楽だから。何より楽だから。
matplotlibも便利でエクセルなんか使わずに結果をプロット出来るし
まあ他の言語もgnuplotとか使えるだろうけどmatplotlibのが楽
0860デフォルトの名無しさん
2012/01/25(水) 03:47:33.62楽なのが良いならPerlを使うべきだろうな。ライブラリがダントツで、人為的な強制もない。
一つの言語で全て出来るという幻想を持ってるようだけど、長く続けてると言語処理系やOS等の下位層を直接弄る事態になるから。
複数の言語が出来て当然だから。年に一つは新しいプログラミング言語を憶えるべき(特にパラダイムが全く異なる言語を)だから。構文抽象というパラダイムはLispにしかないから。
0861デフォルトの名無しさん
2012/01/25(水) 04:00:32.63最も一つに拘ってるのがLisperだからな、初めから矛盾してる
指定されなければpythonつってるのに、それすらも読めないのかよ
Cを指定されることが多いわ。こだわりが無いからpythonなんだよ
お前みたいな頭がダイヤモンドより固い奴が、完全に思考停止して
毎年プログラミング言語を意味もなく覚えたり、意味もなく弄って何かやってるつもりになってると思うと頭がいたくなるわ
プログラミング言語はツールだろ。いや、お前にとってはオナニーの道具なのかもしれないけどさ
必要に応じて使い分けてるだけなんで、ただやることもなくプログラミング言語の中をウロウロしてる浮浪者に何か言われる筋合いはないです
0862デフォルトの名無しさん
2012/01/25(水) 04:14:03.09まるで人が多いかのようにみえるよ!
0863デフォルトの名無しさん
2012/01/25(水) 04:15:19.05自分の常駐してるスレでそういうのやられたら嫌でしょ?
0864デフォルトの名無しさん
2012/01/25(水) 04:44:02.56全てのパラダイムが実現できても、実際のプロジェクトにはほぼ使われない
Lisp万能論車の妄想に付き合うのは面倒だが。少なくとも一般人は自由を強いられたいとは思ってないよ
プログラミング作法があるのならそれに合わせたいの。趣味的な誤差でもね。特に見やすさは強制でなくても重視している、残念ながら。
0865デフォルトの名無しさん
2012/01/25(水) 04:50:45.36一年に一つの言語は「達人プログラマ」だよ。もちろん読んでるよな。
最初から議論じゃなくて喧嘩だろ。未踏に落ちたか知らないけど、変なLispアンチ野郎との。
0866デフォルトの名無しさん
2012/01/25(水) 05:00:04.25書きたい事の足を言語が引っぱるの、しかも実装の必要でもない作者の主義とやらで。
Windozeと同じく一般人がやりたい事はやり易いけど、深い事をやろうとすると足を引っぱろうとする。
実際のプロジェクトに使いたいならscheme以外の言語をどうぞ。CLとかどうでしょうか。あるいは自分が頑張ってschemeのライブラリを書いて下さい。R7RSの議論に参加するのも良いのではないでしょうか。
但しLispのみが構文抽象を扱える重要な言語であるという事実は変わりません。
0867デフォルトの名無しさん
2012/01/25(水) 05:00:36.66言わせんな恥ずかしい。
0868デフォルトの名無しさん
2012/01/25(水) 05:04:32.64それくらいも分からないの?本を読んでも意味をなしてないね
だからさあ、構文を知るためにとか大袈裟なんだよね。噴飯物だよ。それも何かの本の引用なの?
Schemeは書けるけど、別に構文を知るためにSchemeを勉強したわけでもなければ
Lispを見たことなくても構文の勉強は出来るし。そうしてる大学も多いだろ
0869デフォルトの名無しさん
2012/01/25(水) 05:06:07.820870デフォルトの名無しさん
2012/01/25(水) 05:09:23.51Lisp至上主義の成れの果てだな、視野が極端に狭い
0871デフォルトの名無しさん
2012/01/25(水) 05:11:24.330872デフォルトの名無しさん
2012/01/25(水) 07:24:03.060873デフォルトの名無しさん
2012/01/25(水) 07:47:19.290874デフォルトの名無しさん
2012/01/25(水) 08:21:19.67見下されたい奴は並べ↓
0875デフォルトの名無しさん
2012/01/25(水) 08:39:08.590876デフォルトの名無しさん
2012/01/25(水) 08:43:17.70解釈(インタプリテーション)が変わるだけであって、S式を表現するための構文は唯一だ。
あとはアトムのリテラルの記法がいくつかあるだけで。
0877デフォルトの名無しさん
2012/01/25(水) 09:05:18.84ご自分で言語なんだがーつってるのにw
0878855
2012/01/25(水) 11:36:40.67> Schemeの長所は言語概念を体系的に教えるのに非常に適した言語だという事。
>
> これLisperの主観でしょ
違います。
ついでに言えばSchemeと他の大多数のLispとは上の一点に於いて全く違います。
ほとんどのLisp(典型はCommon Lisp)は基本的な言語概念が見えにくくなっています。
実用を重んじて言語設計された結果として、あまりにも余分なものや複合的なものが多いので。
(抽象構文木を直接的に表現できるデータ構造を基本データとして持っているという点はもちろんLisp族すべてに共通ですが)
SchemeはGuy Steeleの若き頃のMITレポートの数々を見ても分かるとおり、それまでの言語概念を突きつめて考察した結果から
可能な限り単純な要素概念だけを言語としては提供して、プログラムを書く側はそれらを自在に組み合わせられるようにする
という言語設計哲学に基づいて言語仕様が作られました。その点では他のLisp族言語よりもAlgol 60やAlgol 68の精神を引き継いだ言語です。
(Revised^6で台無しにされてしまいましたが)
Schemeの開発者たちがAlgol 60のシンプルで例外の少ない言語という精神を引き継ごうとしている事は、Schemeの言語仕様の
タイトルにも表されています。
RubyにせよPythonにせよ、もっと他の言語にせよ、実用で広く使われるのを狙って作られた言語は、Scheme以外の他のLisp系言語と同じく
言語概念が基本要素でなく複合的であったり様々なシュガーで最初から修飾された形でプログラマに提供されているケースが多く、
基本要素概念を単独で用いたいと思うと逆に回りくどい書き方をせねばならないようなケースがしばしばあります。
そこがSchemeとは決定的に違うのです。
Schemeは、少なくともRevised^5までは実用よりも言語の基本要素概念を学び理解する為の言語として言語仕様が策定されて来ました。
だからこそ、実用的な構文は最初からは入れずに体系的な構文拡張の方法を導入して、「シュガーが欲しければ自分で好みの言語に仕上げなさい」
というスタイルで実用側からの言語仕様拡大の圧力に対応して来たのです。
856のような人はSchemeをきちんと勉強した事がなく言語の基本要素概念とは何かを真剣に自分で考えようとした事がないのでしょう。
0879デフォルトの名無しさん
2012/01/25(水) 12:44:40.41CLでgccなみに高速プログラム作るめんどくささは
cで最初から作った方がましな感じ
0880デフォルトの名無しさん
2012/01/25(水) 12:48:28.76あらゆるアルゴリズムをSchemeで書く有用性もあるのだけどねえ
0881デフォルトの名無しさん
2012/01/25(水) 12:50:54.29対応できてないから廃れてんだよ
>言語の基本要素概念とは何か
その基本概念も絶対的なものじゃないでしょ
0882デフォルトの名無しさん
2012/01/25(水) 13:17:10.43最後の行は内容ある反論できずに相対主義持ち出して議論から逃げた典型だなw
0883デフォルトの名無しさん
2012/01/25(水) 13:45:30.40ACMのカリキュラムでもその手の科目が消えるとかインディアナのFelleisenとか騒いでたし
ACMのカリキュラムも881みたいな
知ったかプログラマに合わせたってことだろ
881も自分に内容あるって言いたきゃ
Schemeとは全然ちがうけど
同じように見かけもフォーマルなセマンティクスも単純な
コンセプトや構文だけで構成されてる
実用言語の具体例あげろよ
878の主張は実用言語は実用めざすから否応なしに複雑になっちまうってことだろ
0884デフォルトの名無しさん
2012/01/25(水) 17:35:29.21まずは855以外の人に聞きたいな
0885デフォルトの名無しさん
2012/01/25(水) 17:42:51.26おおざっぱだけど言語仕様と言語の基本要素概念は同じものっていう定義でいいだろ。
0886デフォルトの名無しさん
2012/01/25(水) 17:50:17.74>言語概念が基本要素でなく複合的であったり様々なシュガーで最初から修飾された形でプログラマに提供されているケースが多く、
>基本要素概念を単独で用いたいと思うと逆に回りくどい書き方をせねばならないようなケースがしばしばあります。
855の人の意見だと違うものだと取れるけど
0887デフォルトの名無しさん
2012/01/25(水) 18:18:04.18最後に残る要素はなんだろうみたいな話では。
0888デフォルトの名無しさん
2012/01/25(水) 18:31:03.570889デフォルトの名無しさん
2012/01/25(水) 18:37:32.86てかJavaScriptじゃなくてLispにしてくれたらよかったのになあ。
つかHTMLがS式だったらよかったのになあ(笑
0890デフォルトの名無しさん
2012/01/25(水) 18:38:41.00愛だろ、愛
0891デフォルトの名無しさん
2012/01/25(水) 18:40:58.82世の中の人が欲しているのは
DartとかCoffeeScriptでLispではない
0892デフォルトの名無しさん
2012/01/25(水) 18:48:34.55と
int f(void) { return 3; }
は意味論的には同じだけど、
(define (f) 3) => (define f (lambda (x) 3))
で、これはSchemeがCにない無名関数という基本概念要素を持っている。
とか
(define (f x) x)
をCでやることはできない
これはSchemeがCにない動的型付けという基本概念要素(?)を持っているから、とか?
言語仕様のなかでユーザーが利用できる概念のうちsyntax sugarでないもの?
で、Schemeの基本概念要素は標準的なな言語が持ちうる概念を網羅している、という主張?
ちゃんと考えると(怪しい)論文ができあがりそう。
0893デフォルトの名無しさん
2012/01/25(水) 18:51:23.81www.unixuser.org/~euske/doc/r5rs-ja/r5rs-ja.pdf
仕様が500ページあると精読するだけで何日もかかるし、実感するには何ヶ月もかかるし、
全部突き止められるのか、怪しい。実装をみるとなると500ページに相当するコードも
読むハメになって、ゲロ吐きたくなる。そして言語の再実装をする奴ほとんどいないだろ。
0894デフォルトの名無しさん
2012/01/25(水) 18:55:05.65Ocamlのサブセットのmini-Ocamlはたった2000行だっていうし
0895デフォルトの名無しさん
2012/01/25(水) 19:03:26.900896デフォルトの名無しさん
2012/01/25(水) 19:05:51.84>実装をみるとなると500ページに相当するコードも
>読むハメになって、ゲロ吐きたくなる。
0897デフォルトの名無しさん
2012/01/25(水) 19:14:50.517行スレに3行でLispっぽいものがあがってたけどw
0898デフォルトの名無しさん
2012/01/25(水) 19:22:16.92Camlのサブセットも似たような事をしてる
そういうズルを見て言語を理解したと言えるのかよ
0899デフォルトの名無しさん
2012/01/25(水) 19:37:27.53http://cui.unige.ch/db-research/Enseignement/analyseinfo/LISP/BNFindex.html
なるほど確かに小さい
このサイトにあるJavaや、Python公式ドキュメントに置いてあるものと比べるまででもなく
根本的に少機能なんだよね。これで全ての機能を実現出来ると反論すかも知れないが
そんなの他の言語でも言えること。結局これが実装は出来ても実用は出来ない理由
そもそもプログラミングする上で(Lispでも)仕様を全部読む必要なんていない。ゲロ吐きたくなる
0900デフォルトの名無しさん
2012/01/25(水) 19:42:54.490901デフォルトの名無しさん
2012/01/25(水) 19:43:27.910902デフォルトの名無しさん
2012/01/25(水) 19:44:16.12その50ページは言い換えれば客寄せパンダ
Scheme特有の概念を普通に説明したら数倍の分量にはなるだろうし
平易な言葉で書き直せば500ページ超えも夢じゃない
0903デフォルトの名無しさん
2012/01/25(水) 19:49:07.44C++の例外だけで本になるように
継続だけで本になる
マクロだけで本になる
末尾再帰だけで本になる
0904デフォルトの名無しさん
2012/01/25(水) 19:49:11.930905デフォルトの名無しさん
2012/01/25(水) 20:02:55.57いまの流行りは手書きだろ
0906デフォルトの名無しさん
2012/01/25(水) 20:05:17.970907デフォルトの名無しさん
2012/01/25(水) 20:08:10.24言語を使う側からしたら関係ない話だな
0908デフォルトの名無しさん
2012/01/25(水) 20:15:05.09ちょっと前ぐらい読め
0909デフォルトの名無しさん
2012/01/25(水) 20:31:40.03仕方ないのであきらめた
0910デフォルトの名無しさん
2012/01/25(水) 20:35:14.97> そもそもプログラミングする上で(Lispでも)仕様を全部読む必要なんていない。ゲロ吐きたくなる
仕様を全部読む必要ないと言うけど、一つの言語を体系的に深く理解して、言語
とはどんなものなのかとか、どういうのが作れるのかとか、ある程度の言語のイ
メージを捉えているから新しい言語でも判断できる話でしょ。
チュートリアルに沿って学習したり、雑務をこなすためにちょっとした雑多な処
理を書いて言語を理解するアプローチも大切だけど、概念を理解してトップダウ
ンで組むのも言語の理解が進む。
>>902
それだと500ページの仕様の言語が5,000ページという話になるじゃん。
pg御大が数学の論文を読むのには時間がかかる。それは一個一個が表現力が豊か
という話で数式とはそういうものだ。
0911デフォルトの名無しさん
2012/01/25(水) 20:45:40.04>>899のBNFみて分かることって、
LISPって括弧がいっぱいあって入れ子になってるんだなーぐらいじゃん。
0912デフォルトの名無しさん
2012/01/25(水) 20:59:30.75・S式をXMLみたいに標準化しなかった(分派ごとに微妙にバラバラ、慢心、環境の違い)
・種類が多い割に今風の静的型とか型推論とか型方面が思考停止状態
その他の欠陥
・括弧がいっぱいあって人を寄せ付けない(見た目が怖い)
・readが成功するまで言語として構文解析できない
0913デフォルトの名無しさん
2012/01/25(水) 21:16:56.42> ・S式をXMLみたいに標準化しなかった(分派ごとに微妙にバラバラ、慢心、環境の違い)
XMLが絶対善みたいな言い方だな。
> ・括弧がいっぱいあって人を寄せ付けない(見た目が怖い)
htmlのタグ<>が人を寄せ付けないという話は聞いたことないけどなあ。
食わず嫌いな怠惰人間の屁理屈にしか聞こえない。
0914デフォルトの名無しさん
2012/01/25(水) 21:21:09.050915デフォルトの名無しさん
2012/01/25(水) 21:25:10.340916デフォルトの名無しさん
2012/01/25(水) 21:26:45.54冗長な終了タグがあるからだけど
何が終わったかが判るから、閉じ括弧の連続よりは心理的ダメージがが少ない
0917デフォルトの名無しさん
2012/01/25(水) 21:28:56.940918デフォルトの名無しさん
2012/01/25(水) 21:32:36.51そこにある名前を見るだけで何が終わったかが判るから、
閉じ括弧の連続よりは心理的ダメージが少ない
名前を利用してエラー検出もできる
S式だと閉じ括弧から開き括弧の横の名前へという目線移動が発生する
0919デフォルトの名無しさん
2012/01/25(水) 21:36:03.55手書き派以外には受け入れられる
属性ズラズラ並べられるのは嫌いだけど
0920デフォルトの名無しさん
2012/01/25(水) 21:56:05.25> <html <head <body <p blah >>>>> とかだったら怖いよ…
(html (head (body (p blah ))))
こうすると普通だけどなあ。
vim, emacsだったら(html (head (body (p blah ))))の方が扱いやすいし、冗長な終了タグが
問題なんじゃないの。冗長な終了タグが必要な時ってある? インデントもあるんだし。
0921デフォルトの名無しさん
2012/01/25(水) 21:58:31.13}}}}}}}}}}こんな連続で閉じて数える事は少ない
つまりLISPは括弧でずいぶん損をしてるという話
0922デフォルトの名無しさん
2012/01/25(水) 22:05:08.79なんか別スレで迷惑かけてる人と同じ匂いがした
0923デフォルトの名無しさん
2012/01/25(水) 22:07:27.060924デフォルトの名無しさん
2012/01/25(水) 22:07:54.86【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
http://toro.2ch.net/test/read.cgi/tech/1140006937/
0925デフォルトの名無しさん
2012/01/25(水) 22:08:12.88(html (head (body (p
blah
))))
いくら慣れてもどの閉じ括弧が何と対応するかは瞬時に判らないでしょ
<html><head><body><p>
blah
</p></body></head></html>
これだと3行目だけ見て判る
0926デフォルトの名無しさん
2012/01/25(水) 22:08:23.12そして、文字の色付けすればもっと文句言えなくなるだろ。
XML
ttp://toro.2ch.net/test/read.cgi/tech/1140006937/4
S式
ttp://toro.2ch.net/test/read.cgi/tech/1140006937/17
>>921
エディタにやってもらって数えないから。
エディタなしでもカッコが一つ少ないとかは、なんとなくわかるけど。
0927デフォルトの名無しさん
2012/01/25(水) 22:09:17.32文末に;の方がうざくね?
0928デフォルトの名無しさん
2012/01/25(水) 22:13:40.84いくら単純でも)))))))))))))))うわあああって人もいるよ
色弱な人は色分けされても困るし
0929デフォルトの名無しさん
2012/01/25(水) 22:15:10.360930デフォルトの名無しさん
2012/01/25(水) 22:50:15.020931デフォルトの名無しさん
2012/01/25(水) 22:53:47.26> <html><head><body><p>
> blah
> </p></body></head></html>
(html
(head
(body
(p blah)
)
)
)
でも
(html (head (body
(p blah ))))
でもいいんじゃないの。
本文これだけなら個人的には(html (head (body (p blah ))))でいいかな。
0932デフォルトの名無しさん
2012/01/25(水) 22:58:18.49終了タグを変更するわけでしょ? 面倒くさくない?
0933デフォルトの名無しさん
2012/01/25(水) 23:00:47.66終了タグを入れられるようにしたらどうかな
(html (head (body (p
blah
/p)))/html)
readのエラー検出は向上すると思う
0934デフォルトの名無しさん
2012/01/25(水) 23:14:50.760935デフォルトの名無しさん
2012/01/25(水) 23:22:55.71うざいだけじゃね?
適切なインデントと対応する括弧へのジャンプができるエディタがあれば括弧なんか無いのも同然じゃろ
0936デフォルトの名無しさん
2012/01/25(水) 23:26:11.95readとwriteの対称も維持するとreadで省くのもあれだし
まあ却下だなw
0937デフォルトの名無しさん
2012/01/25(水) 23:32:55.78もうこの話はやめるわ
0938デフォルトの名無しさん
2012/01/25(水) 23:46:21.31現状、>>926のS式がエレガントって話でしょ。
0939デフォルトの名無しさん
2012/01/25(水) 23:46:40.430940デフォルトの名無しさん
2012/01/26(木) 00:03:00.75html
head
body
p blah
0941デフォルトの名無しさん
2012/01/26(木) 00:05:03.87YAMLかよ!
0942デフォルトの名無しさん
2012/01/26(木) 01:19:29.01> Schemeはlambdaが多機能・高機能すぎて細かい所でネックになる印象
別にSchemeのlambdaは多機能でも高機能でもない。
単にCやJavaや多くの言語みたいに一度しか使わない関数(手続き)に
わざわざ名前を付ける必要はなくて、関数(手続き)を直書きできるというだけ。
Cの場合、関数には必ず名前を付けなければならない。つまり関数は名前を付けた一種の定数tなわけだ。
ところがそれへのポインタは変数に入れられる。
さらにデータの型(関数の引数や結果の型)として関数へのポインタという「型」もあって他のintなどの型と
同じように使えるかに見える。
つまりCでは整数とか浮動小数点数とか構造体とか関数とかポインタいったデータの種類と記憶域属性(auto, static, extern, constなど)とが
自由に組み合わせられないという意味で直交しておらず、関数に関しては妙な制約がある(constしかダメ)ということ。
そういう制約があるのでCではデータの種類や記憶域属性を基本要素概念として理解するのが面倒になる。
Schemeには基本要素概念同士の組み合わせに関してそういう奇妙な制約がほとんどない。(すぐには思いつかない)
そういう意味で個々の基本要素概念は独立で、各々の概念を理解すれば後は自在に組み合わせて使えば良いから明快なのだ。
0943デフォルトの名無しさん
2012/01/26(木) 01:52:26.350944デフォルトの名無しさん
2012/01/26(木) 02:08:36.17その関数内だけでよく使う手続きが、関数の外に宙ぶらりんになってるの見るとイラッとくるよね(´・ω・`)
0945デフォルトの名無しさん
2012/01/26(木) 02:09:05.31CTMを思い出した。そのパラダイムを実現するための
ギリギリ最小の構文は何かという観点から、
宣言的プログラミングに始まり、構文を少しずつ付け足して世界を広げていく本
記述はOzとかいう言語で、同じような話をLispでもできるだろうけど、
Lispで行うべき必然性もないような気がする
0946デフォルトの名無しさん
2012/01/26(木) 08:04:58.59C#3.0「ラムダ式があれば匿名メソッドなんていらんかったんや……」
C++11「Javaはラムダ式見送ったの?俺もう入れちゃったんだけど」
ECMAScript5「俺はまだ本当のラムダ式を導入していない、この意味が分かるな?」
0947デフォルトの名無しさん
2012/01/26(木) 08:39:32.65きちがいは下手下手連呼せずに黙ってろ
0948デフォルトの名無しさん
2012/01/26(木) 09:02:00.450949デフォルトの名無しさん
2012/01/26(木) 11:56:44.56おれもCやC++使うとき、関数内関数が書けなくてイラってするときがよくある。
昔CかC++で関数内関数を書いた気がしたんだがきのせいだったんかな(笑
0950デフォルトの名無しさん
2012/01/26(木) 11:58:49.490951デフォルトの名無しさん
2012/01/26(木) 12:20:11.55Pascalならあったな
0952デフォルトの名無しさん
2012/01/26(木) 12:25:25.150953デフォルトの名無しさん
2012/01/26(木) 12:50:56.14C++なら関数内structでstatic関数定義すればいい。
0954デフォルトの名無しさん
2012/01/26(木) 12:56:42.89それはやったことあるけど、書くのもアクセスするのも面倒だよなー(笑
0955デフォルトの名無しさん
2012/01/26(木) 13:02:43.07書くときに増えるのは20文字。呼び出しで増えるのは4文字。
それを面倒といわれても。
名前なしで定義できないのは確かに面倒。
名付けに必要なエネルギーはbodyを書くそれを上回ることが多い。
0956デフォルトの名無しさん
2012/01/26(木) 13:09:29.92書くときに増えるのは20文字。呼び出しで増えるのは5文字。
0957デフォルトの名無しさん
2012/01/26(木) 15:09:51.28こいつでC++コードを生成すればいいだろ
http://www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt
0958デフォルトの名無しさん
2012/01/26(木) 18:05:36.22Javascript/SpiderMonkeyのRiverTrail拡張が面白かった。
Lisp, Schemeの言語拡張だと、Racketの#langがアドホックだけど面白いね。
このスレではRacketを酷評する人もいるけどw
0959デフォルトの名無しさん
2012/01/26(木) 21:05:59.20Racketは独自の道を歩んでいる感がなぁ(大抵のlisp族はそうだけどさ)
0960デフォルトの名無しさん
2012/01/26(木) 21:15:04.790961デフォルトの名無しさん
2012/01/27(金) 23:40:50.41データの処理はUnicodeの範囲で標準でサポート。iconvを利用できるので、
エンコーディングの変換もほぼ問題ない。
http://docs.racket-lang.org/guide/encodings.html
http://docs.racket-lang.org/reference/bytestrings.html
UIについては全部英語だったと思うけど、Racketになってからは触ってないので知らん。
聞くよりは試した方が手っ取り早いと思う。
0962デフォルトの名無しさん
2012/01/28(土) 09:24:20.850963デフォルトの名無しさん
2012/01/28(土) 11:52:11.03Racketは高機能すぎてもう少しシンプルなのがよいのですが・・・
guileやgausheはタブコンプリーションや矢印キーが使えなくて使い難いです。
0964デフォルトの名無しさん
2012/01/28(土) 12:23:14.04それは処理系の機能というより環境の話だなあ。
gaucheなら、Emacsで誰かが補完つきのgauche-modeってのを書いてた気がする。
矢印のヒストリならコマンドラインでrlwrap使ってもいいし。
swankは誰か書いてたっけ?
まあ、そういうのを自分で揃えなくちゃならないのが面倒ってのはわかる。
0965963
2012/01/28(土) 13:22:32.06有り難う御座いました。
emacsだと便利な機能は豊富そうですがemacsは使っていませんし、此れだけの為にインストールしたくありません。
0966デフォルトの名無しさん
2012/01/28(土) 14:11:04.32guile1系とgaucheを使えばいいいんだよ。
0967デフォルトの名無しさん
2012/01/28(土) 14:46:34.090968デフォルトの名無しさん
2012/01/28(土) 15:04:53.75clispならこうするようですが
http://stackoverflow.com/questions/25046/lisp-executable
schemeでexe化できるのはありますか?
0969デフォルトの名無しさん
2012/01/28(土) 15:22:44.60gaucheでもgauche-statifierを使えば一応は出来る。
0970デフォルトの名無しさん
2012/01/28(土) 16:24:19.87rlwrap gauche でぐぐれば、gaucheの関数名補完できるようにする方法も出てくるよ。
0971SCHEME餃子 ◆8X2XSCHEME
2012/01/28(土) 17:03:30.76exe って言うからには Windows での話ってことでいいのかな。
Gauche のソースコードの中にある mingw-exify が使えると思う。
これは見ればわかる通りコードを文字列のまま埋め込むだけのものなので期待しているものかどうか。
http://gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/mingw-exify;hb=HEAD
Windows では gauche-install や gauche-config 等が exe になってないと使い勝手が悪いので用意したということみたい。
ライブラリをプリコンパイルするための機構である precomp を使う方法もある。
http://gauche.git.sourceforge.net/git/gitweb.cgi?p=gauche/Gauche;a=blob_plain;f=src/precomp;hb=HEAD
これは C のコードを生成するのでそのまま gcc 等でコンパイルすることは出来る。
(C のコードと言っても Gauche VM 用のバイトコードが形式として C になるだけ。)
どちらの方法でも VM やライブラリの結合までは面倒見てくれない。
exe 化というのがどの程度のことを期待しているかにもよるけど、
今のところコマンドひとつ、関数ひとつで全工程をやってくれるような都合の良いものは無い。
Gauche のソースコード自体をいじることも含めればどんなことでも出来る可能性はあるわけだけど、
それが出来るくらいならこんなところで訊きもしないだろうしなぁ。
自分が作ったプログラムに必要な部分をピックアップして同梱するのが手っ取り早い配布方法じゃないかな。
0972デフォルトの名無しさん
2012/01/28(土) 17:21:13.49ありがとうございます。
gnupackのcygwin経由でchickenをインストールし
http://www.h7.dion.ne.jp/~samwyn/ChickenDoc/Getting%20started.html
にしたがってcsc -o palindrome palindrome.scmとしたら実行バイナリができました
ですが、chickenを入れていないパソコン用に
静的リンクしたスタンドアロン型実行バイナリを作ろうとして
csc -o palindrome -static palindrome.scm
とすると gcc: /usr/bin/libchicken.a: no such file or directoryとなります
調べたら/usr/lib/libchicken.aがあったのでこれを使うようchickenのコンパイラに伝えたいのですが
http://www.h7.dion.ne.jp/~samwyn/ChickenDoc/Using%20the%20compiler.html
を見てもどう設定するかわかりませんでした
どうすればよいでしょうか
0973デフォルトの名無しさん
2012/01/28(土) 17:27:11.38はい。windowsを想定してました。
そうなるとcのコードで書き出してgccでexe化することが
無難かと思うようになりました。
0974デフォルトの名無しさん
2012/01/28(土) 17:38:20.72マニュアルの「コンパイラの使い方」の中の「生成された C ファイルを配布する」の節。
Cのソースを吐かせて、gccでコンパイル。
0975デフォルトの名無しさん
2012/01/28(土) 17:41:53.68そうするしかなさそうですね。ありがとうございました。
0976963
2012/01/28(土) 17:44:10.34関数名補完も出来る様になり凄く便利に成りました。
有り難う御座いました!
0977デフォルトの名無しさん
2012/01/28(土) 18:21:35.65ごめん、-L<DIR> でcscに直接渡せるっぽい。
http://www.h7.dion.ne.jp/~samwyn/ChickenDoc/csc.html
chickenはドキュメントがそれなりに揃っているのに、リンクや参照が悪いんだよな。
マニュアルもチュートリアルで検索に不便だから、何とかならないものか。
0978デフォルトの名無しさん
2012/01/29(日) 15:05:24.390979デフォルトの名無しさん
2012/01/29(日) 15:20:52.130980デフォルトの名無しさん
2012/01/29(日) 15:37:17.44Lisp Scheme Part34
http://toro.2ch.net/test/read.cgi/tech/1327819028/
0981デフォルトの名無しさん
2012/01/29(日) 15:39:53.880982デフォルトの名無しさん
2012/01/29(日) 23:24:23.000983デフォルトの名無しさん
2012/01/30(月) 09:50:35.68キーワード site:wiki.call-cc.org/manでググる
0984デフォルトの名無しさん
2012/01/30(月) 10:42:52.410985デフォルトの名無しさん
2012/01/30(月) 11:14:16.69ググれば出るけど、マニュアルはもっと構造的に作るべき。
無いと思って調べなかった機能が別のページで見つかったりする。
0986デフォルトの名無しさん
2012/01/30(月) 16:13:42.460987デフォルトの名無しさん
2012/01/31(火) 00:47:34.95争いは同じレベルの者同士なんだな
0988デフォルトの名無しさん
2012/01/31(火) 01:06:59.30くわしく
0989デフォルトの名無しさん
2012/01/31(火) 01:40:00.840990デフォルトの名無しさん
2012/01/31(火) 02:23:12.020991デフォルトの名無しさん
2012/01/31(火) 03:29:24.98なかなか難しいかもしれない
0992デフォルトの名無しさん
2012/01/31(火) 03:40:50.070993デフォルトの名無しさん
2012/01/31(火) 06:24:04.590994デフォルトの名無しさん
2012/01/31(火) 11:44:42.80それをCだからメンテしてっていわれたときは死んだわw
0995デフォルトの名無しさん
2012/01/31(火) 12:57:36.93なんであんなめんどくさい書式なんじゃー!
;;;と絶叫したくなったので書いた、ちょっとだけ反省している
0996デフォルトの名無しさん
2012/01/31(火) 13:04:56.690997デフォルトの名無しさん
2012/01/31(火) 13:59:32.26少ない生データを無駄に水増しするマークアップが苦痛だ
0998デフォルトの名無しさん
2012/01/31(火) 14:09:17.740999デフォルトの名無しさん
2012/01/31(火) 14:42:31.081000デフォルトの名無しさん
2012/01/31(火) 14:44:19.4510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。