Lisp Scheme Part34
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/01/29(日) 15:37:08.66■前スレ
Lisp Scheme Part33
http://toro.2ch.net/test/read.cgi/tech/1318150738/
■テンプレ
http://wiki.fdiary.net/lisp/
■関連スレ
【入門】Common Lisp その8【質問よろず】
http://hibari.2ch.net/test/read.cgi/tech/1309940115/
0002デフォルトの名無しさん
2012/01/29(日) 15:41:33.08http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html
0003デフォルトの名無しさん
2012/01/29(日) 23:33:11.590004デフォルトの名無しさん
2012/01/31(火) 18:27:46.96lisp使う人が減るのはむしろ嬉しい
0005デフォルトの名無しさん
2012/01/31(火) 18:36:59.04その見解おかしいよ、廃れて嬉しいって感受性がヤバイよ
0006デフォルトの名無しさん
2012/01/31(火) 18:45:15.33便利なものの独占度が高まるなんて
これ以上のことはない
Lispを見えないように水面下で使えるようになるには
1年ぐらい準備期間いる気がする
0007デフォルトの名無しさん
2012/01/31(火) 19:41:37.95寄ってたかって作ったライブラリが山のようにあるのだが
0008デフォルトの名無しさん
2012/01/31(火) 19:52:33.09その通りだよ
0009デフォルトの名無しさん
2012/01/31(火) 22:41:31.74だれかgtkかqtをバインディングしてくれないかな
0010デフォルトの名無しさん
2012/01/31(火) 22:54:30.220011デフォルトの名無しさん
2012/01/31(火) 23:10:06.14誰かschemeのCLOSもどき上にCLIMもどきを作らないかな。もっともGUIビルダーもないし、外見がイケてないから使わない気がするけど。
0012デフォルトの名無しさん
2012/01/31(火) 23:24:00.90lispぽく使おうとすると色々ラップする必要はあるかも。
0013デフォルトの名無しさん
2012/02/01(水) 06:09:09.230014デフォルトの名無しさん
2012/02/01(水) 06:53:30.652011-02-16 GNU Guile 2.0.0 released. ttp://www.gnu.org/software/guile/news.html
+ New REPL, new debugger
A read-eval-print-loop (REPL) is available. Compared
to the REPL in earlier releases, it supports
"meta-commands" that provide convenient access to
interactive programming features. For instance, the
,compile meta-command compiles the given expression,
,profile shows an execution profile of the given
expression, etc.
+ Unicode support
Scheme strings can hold any Unicode character, and
ports can read and write Unicode text in various
encodings.
+ Partial R6RS compatibility
The library and import forms of R6RS are supported,
and all the R6RS libraries defined in the standard
are available. See "R6RS Incompatibilities" in the
manual, for details about remaining
incompatibilities.
+ New dynamic foreign function interface
The (system foreign) module provides a new dynamic
foreign function interface (FFI). It allows bindings
to C libraries to be written without a single line
of C code.
0015デフォルトの名無しさん
2012/02/01(水) 07:23:53.21;;gauche
real 0m0.744s user 0m0.730s sys 0m0.000s
real 0m0.695s user 0m0.690s sys 0m0.003s
;;guile2.0.3
real 0m0.780s user 0m0.773s sys 0m0.007s
real 0m0.780s user 0m0.777s sys 0m0.003s
;;guile1.8
real 0m4.263s user 0m4.193s sys 0m0.003s
real 0m4.510s user 0m4.506s sys 0m0.000s
0016デフォルトの名無しさん
2012/02/01(水) 10:36:39.022.0.5のアナウンスがc.l.sに来てたぞ。
0017デフォルトの名無しさん
2012/02/01(水) 11:00:30.91あと自分はschemerじゃないし。
0018デフォルトの名無しさん
2012/02/01(水) 11:24:24.770019デフォルトの名無しさん
2012/02/01(水) 15:21:40.390020デフォルトの名無しさん
2012/02/01(水) 15:34:22.390021デフォルトの名無しさん
2012/02/01(水) 17:31:05.970022デフォルトの名無しさん
2012/02/01(水) 23:39:25.00Chromeでしか動いてないらしい。
0023デフォルトの名無しさん
2012/02/02(木) 00:40:46.80少し試してみたけど、Firefoxでも動作してるみたいだよ。
0024デフォルトの名無しさん
2012/02/02(木) 01:04:09.52archだとguileだけ異常にシェア高い
0025デフォルトの名無しさん
2012/02/02(木) 01:15:49.35MLなんか読み間違えてた、ありがとう
0026デフォルトの名無しさん
2012/02/02(木) 02:08:55.32あと日本で流行るには日本語が通る、日本人の開発者が居る、あたりが重要。
外人だけだと日本語処理の細かい部分が微妙だったり、ユーザーライブラリは日本語が通りませんになったりする。
archといえばaurのgauche-git版だけど、ビルドの依存にgosh本体がないからビルド出来んぞ。
0027デフォルトの名無しさん
2012/02/02(木) 06:38:42.5616時間30分後には最新バージョンが使えるようになっている。
ftp://ftp.gnu.org/gnu/guile/guile-2.0.5.tar.xz
guile-2.0.5.tar.gz. . . Jan 30 21:46 6.60M
guile-2.0.5.tar.gz.sig. Jan 30 21:46 198
$ ls -la /tmp/yaourt-tmp-hoge/aur-guile-devel/PKGBUILD
-rw-r--r-- 1 hoge hoge 856 Feb 1 13:36 /tmp/yaourt-tmp-hoge/aur-guile-devel/PKGBUILD
>>26
gaucheは非gauche-git版入れているなあ。
0028デフォルトの名無しさん
2012/02/02(木) 10:23:38.26Firefoxだけど動いたよ
0029デフォルトの名無しさん
2012/02/02(木) 11:42:50.80たぶんこれ。
[Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://ghettojedi.org/shen-js-repl/repl.js Line: 94"]
http://code.google.com/p/swfintruder/issues/detail?id=1
0030デフォルトの名無しさん
2012/02/02(木) 22:43:29.13死んだ?
0031デフォルトの名無しさん
2012/02/03(金) 00:45:02.98ping は返ってくるね
0032デフォルトの名無しさん
2012/02/03(金) 04:37:37.00復活したっぽい。
Page Information
Title: Franz Inc.: Allegro Common Lisp (Japanese)
URL: http://jp.franz.com/index.html
Document Type: text/html
Last Modified: Thu Apr 22 11:07:21 2004
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Header Information
HTTP/1.1 200 OK
Date: Thu, 02 Feb 2012 19:28:24 GMT
Connection: Close
Server: AllegroServe/1.2.50
Content-Type: text/html
Content-Length: 478
LAST-MODIFIED: Thu, 22 Apr 2004 02:07:21 GMT
0033デフォルトの名無しさん
2012/02/04(土) 00:43:32.110034デフォルトの名無しさん
2012/02/04(土) 23:40:01.25stack やqueueぐらい誰か作ってるだろうと思ったらなかった
racket中途半端だな
0035デフォルトの名無しさん
2012/02/05(日) 00:59:13.90http://docs.racket-lang.org/data/Imperative_Queues.html?q=queue&q=stack
スタックはリストで簡単に再現できるから、需要が低いんじゃないか。
特化したものを実装したいなら自前で実装するって感じで。単なる想像だけど。
0036デフォルトの名無しさん
2012/02/05(日) 01:26:17.960037豆餃子 ◆8X2XSCHEME
2012/02/05(日) 01:51:39.240038デフォルトの名無しさん
2012/02/05(日) 02:27:38.830039デフォルトの名無しさん
2012/02/05(日) 06:20:26.84set-car!使わなくても簡単にスタック実装できると思う。
0040デフォルトの名無しさん
2012/02/06(月) 02:44:51.36qsocksのソースです
http://codepad.org/uyuG7Ovg
ちなみにあたしは高校生です
勉強の息抜きに,あひるちゃんでも発狂させて遊ぼうと考えて作りました
主目的の達成はなりませんでしたが,他の変なのが発狂してて楽しかったので良しとします
プログラミング歴は3ヶ月くらいです.マクロとかクラスとか全然わかりません
0041デフォルトの名無しさん
2012/02/06(月) 03:13:07.150042デフォルトの名無しさん
2012/02/06(月) 03:24:09.25なんでsxmlつかわんの?
べたで (format "~a ~a ~a ...") とかみてscheme使う意味あるのかと
0043デフォルトの名無しさん
2012/02/06(月) 03:53:55.900044デフォルトの名無しさん
2012/02/06(月) 04:08:57.770045デフォルトの名無しさん
2012/02/06(月) 04:42:27.40Schemeって言語自体がS式をベースにした単純なものであることが重要なわけで別にそこは全然いらないだろ
0046デフォルトの名無しさん
2012/02/06(月) 08:03:23.130047デフォルトの名無しさん
2012/02/06(月) 14:26:16.86型推論もどきコンパイラー作ったら
Gambit-Cの10倍の速度でた
3倍はありえるけど10倍は何か間違ってる気がする
0048デフォルトの名無しさん
2012/02/06(月) 14:57:31.320049デフォルトの名無しさん
2012/02/06(月) 16:43:47.69型推論で競うならStalinじゃないか。R4RSで止まってるから実用プログラムを書くのは
しんどいけど。
0050デフォルトの名無しさん
2012/02/06(月) 19:41:22.41もうちょっとがんばってMacで最速と言い張れないか試してみようと思います
0051デフォルトの名無しさん
2012/02/06(月) 19:51:27.190052デフォルトの名無しさん
2012/02/06(月) 22:58:30.750053デフォルトの名無しさん
2012/02/06(月) 23:39:04.66http://wiki.call-cc.org/eggref/4/stalin
The compiler has been tested on Mac OS X 10.4 (ppc)
Intel Mac は無理っぽい
0054デフォルトの名無しさん
2012/02/07(火) 00:02:01.12c.l.sって何の略?
アドレス、教えて。
0055デフォルトの名無しさん
2012/02/07(火) 00:06:42.00enable-unicodeがデフォになった。
weak-hashが入ってdrakmaが動くようになった。
Archのextraはまだ前のVer。Aurのgit版は--enable-hoehm=を変更する必要あり。
>>53
Macは持っていないからスマンけど、ビルドが出来るか確認した?
chickenは移植性が高いし、ソースもschemeみたいだけど。
0056デフォルトの名無しさん
2012/02/07(火) 00:08:00.58横レスだけど、たぶんcomp.lang.scheme。
0057SCHEME餃子 ◆8X2XSCHEME
2012/02/07(火) 00:08:55.44ニュースグループの comp.lang.scheme のこと。
ネットニュースなので NNTP に対応したクライアントで見るのが本来だが、
サーバが減りまくっていてまともに繋げるところが少ない。
今ではありがたいことに google group 経由で見れる。
https://groups.google.com/group/comp.lang.scheme/topics?hl=ja
0058デフォルトの名無しさん
2012/02/07(火) 00:32:57.33とはいえ型推論するschemeコンパイラの需要は多大なので期待しております。
0059デフォルトの名無しさん
2012/02/07(火) 01:10:55.72http://www.ibm.com/developerworks/jp/opensource/library/itm-progevo4/
StalinはCを介してネイティブコードを出力するのですが、gcc-4系列ではgcc自身の最適化ルーチンが終了しなくなるので、gcc-3系列を用いて処理系をビルドする必要があります。
Intel Macにgcc3は入らない
http://discussions.apple.com/thread.jspa?messageID=6900842
http://iodonacht.blog90.fc2.com/?mode=m&no=27
0060デフォルトの名無しさん
2012/02/07(火) 01:44:25.43サンクス
0061デフォルトの名無しさん
2012/02/07(火) 02:14:47.49これかな。
ttp://newsgroups.derkeiler.com/Archive/Comp/comp.lang.scheme/2006-02/msg00002.html
0062デフォルトの名無しさん
2012/02/07(火) 19:59:11.83gaucheは中の人が精力的に更新しているけど本人が倒れてしまったらどうなるかわからない
手堅いのはchickenやracketあたりか
0063デフォルトの名無しさん
2012/02/07(火) 20:22:42.28Gauche は確かに shiro さんが今のところはほぼ全てを支配しているけど、
拡張パッケージを見ると Gauche の内部構造を良く理解していないと
実現できないものとかもあったりするので、そんな人たちならいつでも
開発を引き継げると思う。
ある程度大きな開発コミュニティがあるものも、それはそれで分岐したり
なんなりがありうるから現状の体制のまま 10 年後もあるかっていうと疑問だな。
統計的には、今まで長く続いているものはこれからも長く続く可能性が高いけど。
0064デフォルトの名無しさん
2012/02/07(火) 20:25:29.85R7RSが決まればscheme処理系毎の差異も小さくなるだろうし、そんなに心配はしてない。
racketは独自路線すぎてついていけない。
型推論するR5RS compilerが欲しいなー(チラッ
R7RSといえばsyntax-caseだけは嫌なので、explicit renamingが採用されて欲しいな。R6RSがあんな美しくないミニ言語を入れた理由が分からない。
0065デフォルトの名無しさん
2012/02/07(火) 23:12:09.390066デフォルトの名無しさん
2012/02/08(水) 00:48:16.17> あんな美しくないミニ言語
解が見つからないまま publish に至っちゃった結果なんじゃないかなぁ。
Scheme マクロの出発点は「文脈によって意味が変わらないマクロを定義したい」
というところなんだろうけど、それがどうにも上手く行かない。
Common Lisp の symbol は名前を持つ object であるのに対し、
Scheme の symbol はちょっと変わった文字列でしかない。
つまり (eq? (string->symbol "foo") 'foo) => #t であることが保証されている。
ということは explicit renaming では
文脈によって意味が変わらないマクロを定義できない。
というわけで Scheme のマクロ変換の対象となるのは
マクロ変換時の情報を格納したオブジェクト(構文オブジェクト)とならざるを得ない。
で、マクロ変換時の情報って何よ?
ってなったときにどうにも合意できるものが無い。
合意できるものがないので
(datum->syntax identifier datum)
という identifier の中に隠れた(仕様書に無い)構文情報を
datum に付加できる手続きを仕様とすることでなんとなく合意された。
と推測している。
0067デフォルトの名無しさん
2012/02/08(水) 02:07:25.92explicit renamingでも良いけど、何度もrenameするの面倒な気がする。
http://d.hatena.ne.jp/leque/20080528/p1
0068デフォルトの名無しさん
2012/02/08(水) 03:06:13.27defmacro の方が、シンプルかつ必要最小限じゃん?
0069デフォルトの名無しさん
2012/02/08(水) 05:20:32.66運用上のルール (RnRSで定義されてるグローバル束縛をシャドウするローカル変数は作らない、とか)
で回避できなくはないけど、そこで妥協したらSchemeじゃない。
0070デフォルトの名無しさん
2012/02/08(水) 05:38:39.350071デフォルトの名無しさん
2012/02/08(水) 10:41:16.35http://developers.slashdot.org/story/12/02/07/0043241/hacking-the-nes-with-lisp
007268
2012/02/08(水) 16:45:06.95ごめん、よく知らないんだけど、そもそもそういう思想なの?
刃物が危ないから規制する、みたいな感じに受け取れるんだけど…。
マクロの外側では普通に、グローバル束縛をシャドウするローカル変数、って(作っちゃだめだけど)作れるんだよね?
(define (let) 10) でめっちゃめちゃだよね?
なんで defmacro だけ目の敵に…。
0073デフォルトの名無しさん
2012/02/08(水) 17:05:59.38let を変な風に定義しなおしたとしても、何も変えてない let* とか letrec とかは今まで通り普通に動いてほしい
でも let* がマクロで let に展開されると、変な風に変えた新しい let を使うと、正しく動かなくなってしまう
自分が let を使うときは自前の定義した let を使いたいけど、 let* とかがマクロの内部で使ってる let は元々の let を使ってくれれば、素敵だと思わない?
そんな気持ち
0074デフォルトの名無しさん
2012/02/08(水) 17:10:55.65これに対してCommon Lispではgensymやパッケージ指定や命名規則で対応する。
schemeはLisp-1で名前空間が少ないのでCommon Lispと同じ対応は難しいし、直交しないので美しくない。
そこで定義時の文脈で評価する清潔なマクロを使用する。
R5RSのsyntax-rulesは純粋に定義時の文脈しか参照できない。
そこでR6RSに文脈を好き組み合わせられるsyntax-caseが入った。これは文脈を選べるので古典的マクロより強力。
ただsyntax-caseは通常のLispの文法に似ていないし、パターンマッチなど余計な仕事をしているので美しくない。
そこでexplicit renamingかsyntactic closureに変更しろという文句が出て来る。
0075デフォルトの名無しさん
2012/02/08(水) 17:14:28.230076デフォルトの名無しさん
2012/02/08(水) 17:20:18.70マクロじゃない、普通のライブラリは既にそういう分離が出来てるから。
自分のモジュールで (define car '(toyota prius)) したら、突然
標準ライブラリで内部でcarを読んでる関数が全部動かなくなる、なんてことはないよね。
(R6RS以降、もしくはR5RS+適切なモジュールシステムを使ってれば)。
マクロでもそれと同じことを保証したいけど、defmacroではできない、っていうこと。
0077はちみつ餃子 ◆8X2XSCHEME
2012/02/08(水) 19:23:37.41小さければ良いというものではないよ。
プリミティブとしてふさわしいかどうかっていうことが重要で、
結果的にある程度小さいことが求められる。
defmacro がふさわしくない理由は↓の記事が詳しい。
http://blog.practical-scheme.net/shiro/20100425-scheme-macro
0078デフォルトの名無しさん
2012/02/08(水) 22:39:10.44> なんで defmacro だけ目の敵に…。
昔は手続きにも同じ問題があった(funarg問題)。
これに対してはレキシカルクロージャで一応解決した。
Scheme はマクロの方も解決しようとしている。
でもみんなが満足する解は今のところみつかってない。
0079デフォルトの名無しさん
2012/02/08(水) 22:46:26.14>型推論するR5RS compilerが欲しいなー(チラッ
今がんばっています
0080デフォルトの名無しさん
2012/02/09(木) 16:13:55.29ほうほう
楽しみにしています
0081デフォルトの名無しさん
2012/02/11(土) 04:44:52.24まあaifくらいしか使わないけど・・・
他にもdefmacroでしかできないようなことってある?
0082デフォルトの名無しさん
2012/02/11(土) 07:18:20.00多分、ググれば出て来る。
0083はちみつ餃子 ◆8X2XSCHEME
2012/02/11(土) 12:49:13.70かなり面倒くさいが出来ないわけではない。
http://d.hatena.ne.jp/leque/20100826/p1
0084デフォルトの名無しさん
2012/02/11(土) 13:37:23.08R5RS処理系でも主要な物には外部変数捕捉が可能な健全なマクロシステムが入ってるよ。
0085デフォルトの名無しさん
2012/02/11(土) 13:40:57.53defstruct みたいに prefix 付き手続きを自動生成するとか。
0086はちみつ餃子 ◆8X2XSCHEME
2012/02/11(土) 15:59:41.06むしろ defmacro には出来ないことがあると思う。
一応 >>81 が期待している回答が syntax-rules と defmacro の比較と仮定すると、 >>85 の他に
マクロ展開時の数値計算みたいなのとかも syntax-rules では無理ってことになるんじゃないかな。
例えば (plus 1 2) を 3 に展開するみたいなのは無理。
(define-syntax plus
(syntax-rules ()
((_ 1 2) 3)))
みたいな感じで全ての数値の組み合わせを網羅するとかいった方法が無いでもないが非現実的だわな。
0087デフォルトの名無しさん
2012/02/11(土) 16:25:57.010088はちみつ餃子 ◆8X2XSCHEME
2012/02/11(土) 17:08:26.17R6RS のマクロは defmacro に出来る大抵のことは出来るはずだけど、
展開時に使う関数は別のライブラリに分けなきゃならない制限があったりする。
(フェイズの分離がライブラリ単位。)
「defmacro は関連定義をひとつのパッケージにまとめることが出来る (が R6RS のマクロはそうではない)」
という点で能力の差と言えなくもないけど、定義したマクロを使う分には関係無いので単に記法の違いと言えなくもない。
一方で、 >>77 にあげたように「defmacro では完全に変数衝突を避けることは出来ない」というのは
定義したマクロを使う時にも注意を強いるという点で「defmacro には出来ないことがある」と考えた。
つまり、定義時の楽さや複雑さを置いといて、どれだけマクロの中に隠蔽できるか (マクロ使用時に見えないか)
で測ると >>86 という意見になるわけだけど、そうじゃない解釈もできるので曖昧な文章になってしもたという感じ。
0089デフォルトの名無しさん
2012/02/13(月) 00:28:30.09http://queue.acm.org/detail.cfm?id=2068896
特別な内容という訳ではないと思うけど、queueだけではなく
John McCarthyが表紙のacm会誌('12/01)にも転載されてた。
0090デフォルトの名無しさん
2012/02/14(火) 17:54:07.78message%のlabelが全部表示されない
だめだな
0091デフォルトの名無しさん
2012/02/14(火) 19:05:01.690093はちみつ餃子 ◆8X2XSCHEME
2012/02/14(火) 19:16:47.01http://www010.upp.so-net.ne.jp/okshirai/scheme-20070402222203.txt
0094デフォルトの名無しさん
2012/02/14(火) 19:37:41.97ありがとう
勉強になった
0095デフォルトの名無しさん
2012/02/14(火) 19:57:47.92Lisp関連書籍やものまね鳥なんか買うことが出来てお世話になった。
0096デフォルトの名無しさん
2012/02/14(火) 22:05:27.83って、そういえば、三越自体がなくなるせいか
まぁ仕方ないね
0097デフォルトの名無しさん
2012/02/14(火) 22:37:18.960098デフォルトの名無しさん
2012/02/14(火) 23:31:00.570099デフォルトの名無しさん
2012/02/15(水) 01:47:04.540100デフォルトの名無しさん
2012/02/16(木) 03:04:19.85それにしても紀伊国屋の3階はLisp関連書だけ外れの方に追いやられてるのは何故だ・・・
0101デフォルトの名無しさん
2012/02/16(木) 08:01:16.78コンピューター書のコーナーが中央にあって、そこと別にLispコーナーが端にあるのか?
0102デフォルトの名無しさん
2012/02/16(木) 08:34:03.940103デフォルトの名無しさん
2012/02/19(日) 00:22:46.67一応コンピュータのコーナーだが概論的なコーナーだし
空間的に、ん?ここもコンピュータ書のコーナーなのかな?
というような微妙な位置にある。
0104デフォルトの名無しさん
2012/02/23(木) 22:48:15.88http://abcl-dev.blogspot.com/2012/01/abcl-101-released.html
http://abcl-dev.blogspot.com/2012/01/closing-in-on-closer-mop-in-abcl-110.html
地道にやってるのかな・・・
0105デフォルトの名無しさん
2012/02/28(火) 23:26:45.58けど、LISPに関する文章が悲しくて泣けた
家に帰ってリスト遊び窓から投げ捨てた
0106デフォルトの名無しさん
2012/02/28(火) 23:42:50.17どんな文章なんだろう
読んでみるよ
0107デフォルトの名無しさん
2012/02/29(水) 05:52:25.13http://www.geidai.ac.jp/~marui/clojure/index.html
https://sites.google.com/site/clojurejapanesedocumentation/home/reference
lisp系でそこに名前が上がっていたのは、clojureだけで、racketさんは認知されていなかった。
もう一点は、コンパイル時の型チェックは重要ということで、型推論からパターンマッチングあたりの積み上げやすさを説いていた。
(値のテストだけで済む)
なので、定義では関数型言語は不変データ構造だけど、MLレベルのコンパイル時チェック(テストを値での分岐チェックに落とし込める)がないとダメじゃないかという内容でもあった。
0108デフォルトの名無しさん
2012/02/29(水) 06:02:06.45(マクロはAST操作やテンプレートがありますが)
前半でいえば、最近だと、逆に値の変更をプログラマーが管理してチューニングする方がいいと、clojureからclに流れる人もいるし、
haskellも性能出すのにチューンされた通常のデータ構造は管理して使ってるみたいだけど。
(ただclojureやscalaの影響で不変データ構造の高速化にチャレンジするライブラリ制作者も増えた気がする)
後半の型推論といえば、shenが(ry
0109デフォルトの名無しさん
2012/02/29(水) 09:47:21.10Clojureもjavaのコードを動的コンパイルしてreloadできれば値の変更を伴うコード書くのもたやすいんだがなぁ
CLとくらべちゃうとどもならんけど
0110デフォルトの名無しさん
2012/02/29(水) 10:14:13.14配列も使える
0111デフォルトの名無しさん
2012/02/29(水) 11:52:59.90それこそ頭おかしい。
0112デフォルトの名無しさん
2012/02/29(水) 12:01:59.01高階関数やマクロや型推論などのコードがスッキリ書ける技法を押した方が良いと思うのだけど。
0113デフォルトの名無しさん
2012/02/29(水) 12:04:56.93関数型言語と独立した概念。
0114デフォルトの名無しさん
2012/02/29(水) 13:36:21.87constは常識ですから、で終わり。高階関数でさえ取り入れられてきて、優位としては怪しい。
やはり対話環境も含めた言語全体の機能を押した方が良いと思う。
0115デフォルトの名無しさん
2012/02/29(水) 14:36:51.260116デフォルトの名無しさん
2012/02/29(水) 15:09:43.56説明してもらえるかしら?
0117デフォルトの名無しさん
2012/02/29(水) 15:10:24.83「副作用(内部状態)を活用したプログラミング」「副作用に依存しないプログラミング」などがある。
副作用に依存した言語しか知らないプログラマーが、余計な副作用に悩まされるというのは判る。
大抵は>>114の、constなどで解決出来るから、ネイティブCでは難しいこと(DSLを作るとか)
が必要になったらLispなどが選択肢に入る、ってだけだと思う。
0118デフォルトの名無しさん
2012/02/29(水) 15:20:05.46この FAST LISPの説明がよくわからないんですが
「ビットスライスプロセッサ上に、マイクロプログラム化した」というのは
どういうことでしょう?
0119デフォルトの名無しさん
2012/02/29(水) 15:39:13.99「ビットスライスプロセッサ」、「マイクロプログラム化」の意味ならWikipediaあたりで見てもらうとして、
意義は、ハードレベルでLisp対応マシンを作製した、という事。
現在の個人向けPCのCPUは、どちらかと言うとC言語対応。
C言語対応CPU + Cソース + Cコンパイラ
→ Lispコンパイラ + Lisp ソース
→ C言語対応CPU用実行ファイル
→ C言語対応CPUで実行、よりも
Lisp対応CPU + Lispソース
→ Lisp対応CPU用実行ファイル
→ Lisp対応CPUで実行
の方が速度的に有利だし、Lispの内部構造改善も容易。
0120デフォルトの名無しさん
2012/02/29(水) 17:34:21.00ここに参照すべき文献が出てる
>C言語対応CPU
そんなものがあるのか?
0122デフォルトの名無しさん
2012/02/29(水) 20:47:12.95そんな事実はあるのか?具体例をひとつ。
0124デフォルトの名無しさん
2012/02/29(水) 21:38:31.080125はちみつ餃子 ◆8X2XSCHEME
2012/02/29(水) 23:34:11.55最適化って処理に時間がかかるよくあるパターンを置換える処理だけど、
「よくあるパターン」ってやっぱ言語によると思うんだよな。
インテルはあまり詳細な資料は公表してないけど、少なからず言語を意識せざるを得ないはずではある。
0126デフォルトの名無しさん
2012/02/29(水) 23:51:50.050127デフォルトの名無しさん
2012/02/29(水) 23:56:11.750128デフォルトの名無しさん
2012/03/01(木) 01:05:40.84x86: enter命令やleave命令
SPARC: レジスタウィンドウ
MIPS: 大量のレジスタと少ないアドレッシングモード
Atmel AVR: (PIC あたりと比べて)Cで書きやすいように設計された
C だけでなく Pascal や FORTRAN あたりも視野に入ってるんだろうけど。
ARMv8 でタグ付きポインタ入らないかなと期待してるんだけど無理だろうな。
0129デフォルトの名無しさん
2012/03/01(木) 01:16:43.05データの時間的局所性を自然に表現することになるから、キャッシュが効きやすいはず
原理的にCPUとは相性がいいんじゃないの?
0130デフォルトの名無しさん
2012/03/01(木) 04:38:06.51持ち上げるのは仕方ないとして、LISPでやって来たことは頃は何も分かってなかった
みたいに否定的に思い出しているのがちょっとショッキングだったなあ。
俺もHaskellやろうかな?
0131デフォルトの名無しさん
2012/03/01(木) 07:31:42.23「俺も全然分かってなかったわ……」と結論付けるにせよ
「あいつがLisp全然分かってなかったわ……」と結論付けるにせよ
0132デフォルトの名無しさん
2012/03/01(木) 14:05:17.12何でlispの頃はそもそも理解できなかったんだろう?
理解できてもいいと思うんだけど。
lispだから理解できなかったというよりも
lisp経験を積んだから最終的に理解できたんじゃないかな
0133デフォルトの名無しさん
2012/03/01(木) 14:15:01.27Cしか使ったことない人にGObjectを説明してもたぶんよく分からないだろうけど
C++を一度経由させてみたらオブジェクト指向について理解が深まる……みたいな感じで
ほかの言語に触れたからこそ目が覚めた、でも元々使ってた言語でも同じようなことはできた
ってことはあるかもしれない
0134デフォルトの名無しさん
2012/03/01(木) 14:27:56.13何か意図があるのかないのか
この手の文章によくあるセンスの悪い誇張だろう
0135デフォルトの名無しさん
2012/03/01(木) 14:54:00.62Haskelは型付けの意識が強すぎて、書きながら考えるのがやりにくいのがイヤ。優等生向け言語。遅延評価もマイナス。
0136デフォルトの名無しさん
2012/03/01(木) 15:26:55.07>遅延評価もマイナス。
メリットを上回るデメリットって何?
0137デフォルトの名無しさん
2012/03/01(木) 16:15:27.97多分それに対する返しは「副作用に魂を縛られた人々よ」なんじゃないかと思うが。
0138デフォルトの名無しさん
2012/03/01(木) 16:19:32.71あくまでも個人的な感想。言語の機能は目的に応じた選択だから良い悪いの評価は難しい。だからこそLispは言語が作れる言語になってる。
静的型の利点に性能をあげやすい点があるけど、デフォルトが遅延評価だとやりにくい。
0139デフォルトの名無しさん
2012/03/01(木) 16:37:25.31elispは開発環境として、プロトタイプ志向がすごく強くて、
コンパイラの性能も悪いから、ちょっと特殊だしね。
0140デフォルトの名無しさん
2012/03/01(木) 16:40:19.88性能評価とか人が直感的に理解できる範疇をはるかに超えてる
0141デフォルトの名無しさん
2012/03/01(木) 16:59:49.49のはそれなりに影響を与えそうな気はする。
0142はちみつ餃子 ◆8X2XSCHEME
2012/03/01(木) 17:19:02.05公式文書とか入り組んだ理屈を書くときにちょっと確かめたりするくらいだ。
合理的な理由があったとしても、メンタルモデルとかけ離れた言語は使い難いよ。
Lisp は言語の方を自分に (あるいは目的に) 合わせていける余地があるところが良い。
だけど、自分の裁量が大きいっていうのは自分の能力次第でグダグダにもなるってことでもあるわな。
Haskell は知識を体系的に表すことが強要される気がするけど、
それが使い難いと感じるのは、人の脳味噌が実際のところそんなに体系的に考えるのには向いてないってことなんじゃないかな。
0143デフォルトの名無しさん
2012/03/01(木) 18:01:53.72副作用が良くない事のように捉える人が少なくないのに違和感あり。
0144デフォルトの名無しさん
2012/03/01(木) 18:09:54.900145デフォルトの名無しさん
2012/03/01(木) 18:22:35.350146デフォルトの名無しさん
2012/03/01(木) 18:28:50.590147デフォルトの名無しさん
2012/03/01(木) 18:32:07.85むしろ禁止しないほうがいいというのが、大多数の言語の主張だろ
0148デフォルトの名無しさん
2012/03/01(木) 18:39:58.90命令型(プロシージャルorインペラティブ)のそれを「副作用」と呼ぶのには
問題があると言えばある。今更「仮想」とかと同じでどうにもなりそうにないが。
0149デフォルトの名無しさん
2012/03/01(木) 18:45:15.14宗教家のそれを「説教」と呼ぶのには問題があると言えばある。
のか?
0150デフォルトの名無しさん
2012/03/01(木) 18:46:02.620151デフォルトの名無しさん
2012/03/01(木) 18:46:15.60haskellはいい線行ってるとおもうけど
0152デフォルトの名無しさん
2012/03/01(木) 19:10:15.74副作用のある部分もない部分もプログラムの正しさを証明できればいいなっ
という試みだろ
0153デフォルトの名無しさん
2012/03/01(木) 19:17:23.29もっともな話だけど、そのメンタルモデルとやらが本質を捉えていたかどうかだな。
継続みたいに慣れの問題にすぎないんじゃないかと思うよ
0154デフォルトの名無しさん
2012/03/01(木) 23:29:10.52Haskellは知識を「体系的」と言うより数式と同じように「宣言的」に表します。
人の脳味噌にとっても宣言的に考える方が手続的に考えるより向いている場合があります。
宣言的記述である方程式を手続き的に記述すると鶴亀算になりますが、
方程式の方が鶴亀算よりずっとわかりやすいです。
>>151
はっきりとコードを手続的記述と宣言的記述に分けられるか、と言い換える事もできます。
Haskellは、その点では理想に近いですね。
0155デフォルトの名無しさん
2012/03/02(金) 00:32:59.87だよね。
結局性能が落ちるコードを避けるために神経を使わないといけないなら、
eagerに対する利点が相殺されてるんじゃないのか、って思うわ。
個人的な印象としては、必要なときだけlazyにできれば十分。
その方が、必要なときだけeagerにするよりはずっと分かりやすい。
0156デフォルトの名無しさん
2012/03/02(金) 07:55:50.400157デフォルトの名無しさん
2012/03/02(金) 09:07:55.27なんでLispスレでHaskellヘイトをせにゃならんのだ。
0158デフォルトの名無しさん
2012/03/02(金) 10:04:37.290159デフォルトの名無しさん
2012/03/02(金) 10:07:25.49http://docs.racket-lang.org/lazy/
http://docs.racket-lang.org/ts-guide/
0160デフォルトの名無しさん
2012/03/03(土) 00:12:35.60既に条件に合うLispって言語を使ってるのにML使えとか言われても。
それに、OOPを批判することとJavaを批判することが同じでないように、
Haskellを攻撃してるわけじゃないのは理解して欲しいところ。
あと、遅延でHaskellばっかり引き合いに出すと、多分Cleanさんが泣く。
0161デフォルトの名無しさん
2012/03/03(土) 02:17:20.62関数型言語の定義を静的単一代入であること
とかにするのはいくら何でもおかしいだろ
もちろん、関数型言語の定義なんて存在しないことは
わかっているつもりだけどさ
0162デフォルトの名無しさん
2012/03/03(土) 02:23:26.600163デフォルトの名無しさん
2012/03/03(土) 07:57:33.75静的型やらなんやらと、遅延評価は抱き合わせじゃない、というそんだけの話。
0164デフォルトの名無しさん
2012/03/03(土) 15:25:55.02Haskellや静的型の話をしてるのは別の人。勘違いで過剰に反応するのは勘弁して。
0165デフォルトの名無しさん
2012/03/03(土) 16:19:02.990166デフォルトの名無しさん
2012/03/03(土) 16:29:24.950167デフォルトの名無しさん
2012/03/03(土) 17:10:19.84関数型言語の中間表現でよく使われる形式と等価ではあるんだが。
0168デフォルトの名無しさん
2012/03/03(土) 18:16:18.87LLVM IRもSSAだし、Google V8のJITCが使うのもSSAなはず
0169デフォルトの名無しさん
2012/03/03(土) 18:44:49.390170デフォルトの名無しさん
2012/03/03(土) 21:19:44.93Haskellerがそうなんじゃないの
SSA(静的単一代入)は中間表現に対して使われるものとwikiepediaに書いてあったけど
ちなみに、C/C++とかだって最適化の途中でSSA形式の中間表現に変換される
0171デフォルトの名無しさん
2012/03/03(土) 21:20:23.15×Haskeller
○Haskell
0172デフォルトの名無しさん
2012/03/04(日) 02:28:26.54むしろ現代の最適化コンパイラでは
デファクトスタンダードの中間表現
0173デフォルトの名無しさん
2012/03/04(日) 09:36:41.190174デフォルトの名無しさん
2012/03/08(木) 20:09:43.95現実では大した役に立ってないよね
Haskellなんかわからないけど凄そうみたいな
印象操作に成功しているだけだろ
0175デフォルトの名無しさん
2012/03/08(木) 20:18:25.14〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
>( c´_ゝ`) |
|
>( c´_ゝ`) J
>( c´_ゝ`)
|
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
| >( c´,_ゝ`)
|
J >( c´,_ゝ`)
>( c´,_ゝ`)
0176デフォルトの名無しさん
2012/03/08(木) 21:29:15.66当方Scheme使ってるが。
0177デフォルトの名無しさん
2012/03/08(木) 21:55:54.71今Haskellならではの便利プログラムを求めて全力疾走している僕は
予備校に通う ごく一般的な男の子
強いて違うところをあげるとすれば
Schemeを使ってるってとこかナー
名前は道下正樹
0178デフォルトの名無しさん
2012/03/08(木) 21:58:07.330179デフォルトの名無しさん
2012/03/08(木) 22:50:06.220180デフォルトの名無しさん
2012/03/08(木) 23:10:20.440181デフォルトの名無しさん
2012/03/09(金) 04:07:33.35自分は優れているなどと勘違いしてそう
0182デフォルトの名無しさん
2012/03/09(金) 04:08:38.790183デフォルトの名無しさん
2012/03/09(金) 04:44:31.020184デフォルトの名無しさん
2012/03/09(金) 09:21:33.350185デフォルトの名無しさん
2012/03/09(金) 09:41:50.75Lips界隈でもポール・グレハムとかさ
0186デフォルトの名無しさん
2012/03/09(金) 09:51:12.60その時点で雑魚確定だろ
0187デフォルトの名無しさん
2012/03/09(金) 09:57:47.960188デフォルトの名無しさん
2012/03/09(金) 10:02:11.32何故?
0189デフォルトの名無しさん
2012/03/09(金) 10:28:31.63俺が分からないからお前も分かっちゃ駄目ってのは日教組強すぎだろ
0190デフォルトの名無しさん
2012/03/09(金) 10:37:28.69Javaとか使ってても、きっちり技術的な観点からバランス感覚のある選択をしてれば、
無意味に馬鹿にされたりはしない。
0191デフォルトの名無しさん
2012/03/09(金) 10:46:00.400192デフォルトの名無しさん
2012/03/09(金) 10:50:38.83いい利点たくさん挙げられるけど
0193デフォルトの名無しさん
2012/03/09(金) 10:55:07.67packrat parserは言語に依存する技術じゃないと思う。
Haskell以外の言語での実装も溢れてるし。
0194デフォルトの名無しさん
2012/03/09(金) 10:56:35.640195デフォルトの名無しさん
2012/03/09(金) 11:03:11.45流石に語弊あり過ぎ。
あと、Haskellならではでもないというか、Cleanでも同じことできないか?
0196デフォルトの名無しさん
2012/03/09(金) 11:09:38.020197デフォルトの名無しさん
2012/03/09(金) 11:13:19.83なんで一般の言語で使われないのか?
Haskell布教者の主張するような利点だけじゃなくて
欠点も多いからだろ
0198デフォルトの名無しさん
2012/03/09(金) 11:13:41.500199デフォルトの名無しさん
2012/03/09(金) 11:14:28.71一応、遅延評価デザインパターンってのはあります。
言語が直接サポートするのが少ないだけで。
0200デフォルトの名無しさん
2012/03/09(金) 11:19:22.62それは分かるけどさ、言語が直接サポートしないのが一般的なのは
遅延評価と普通の評価のトレードオフを考えた上だろ
0201デフォルトの名無しさん
2012/03/09(金) 11:29:37.02Java が流行ったとたん、パッタリと消えたタイプのw
0202デフォルトの名無しさん
2012/03/09(金) 11:31:03.42それは確かにそうかもしれない。ちょっと過敏な反応だったようで申し訳ない。
最近、何かにつけてHaskellが引き合いに出されることが多くて、ささくれだってたみたいだ。
0203デフォルトの名無しさん
2012/03/09(金) 11:32:29.66そもそも遅延評価という選択肢を考慮すらせずに設計された言語も多いんじゃない
0204デフォルトの名無しさん
2012/03/09(金) 11:41:13.17言語設計者がそんなに馬鹿な連中だとは思わないけど
遅延評価なんて大学で情報関係の教育を受けた人間なら知ってることだろ
0205デフォルトの名無しさん
2012/03/09(金) 11:41:36.45遅延評価がこれから流行る可能性はゼロだけど
0206デフォルトの名無しさん
2012/03/09(金) 11:51:13.090207デフォルトの名無しさん
2012/03/09(金) 12:05:46.45今どきの、情報教育ならね。
今現在主流の言語はほとんど、二世代三世代前の連中が設計したものがベースってことを忘れちゃいかんよ。
0208デフォルトの名無しさん
2012/03/09(金) 12:08:35.04それ以外の新しい言語でも遅延評価は採用されてない
欠点も大きいからね
0209デフォルトの名無しさん
2012/03/09(金) 12:12:20.410210デフォルトの名無しさん
2012/03/09(金) 12:15:27.590211デフォルトの名無しさん
2012/03/09(金) 12:18:42.100212デフォルトの名無しさん
2012/03/09(金) 12:19:03.040213デフォルトの名無しさん
2012/03/09(金) 12:22:26.05欠点があることは誰も否定してない。
が、採用言語が少ないことは、欠点だけが理由じゃなく、考慮されないことが多かったからって話をしている。
もちろんJavaが先行評価なのは歴史的経緯なんだろうし、RubyについてはMatz本人に聞かないと分からんけど
そういう個々の話をしてるわけじゃないだろ...
0214デフォルトの名無しさん
2012/03/09(金) 12:39:08.44欠点が理由だよ
考慮されないのは欠点が大きすぎるから
0215デフォルトの名無しさん
2012/03/09(金) 12:46:30.09おら、ここで存分にやれや。
まずはおまえの脳内で断定して断言するだけじゃなくて、
計算機科学的な理由をちゃんと挙げるところからなw
0216デフォルトの名無しさん
2012/03/09(金) 12:47:17.51こういう微妙な悪文に気がつかない人って頭悪そう
0217デフォルトの名無しさん
2012/03/09(金) 12:53:24.240218デフォルトの名無しさん
2012/03/09(金) 12:54:29.56http://ja.reddit.com/r/lisp/comments/qnv47/common_lisp_on_heroku/
Schemeでこういうのないの?
0219デフォルトの名無しさん
2012/03/09(金) 12:55:24.51(define (gcd a b)
(if (= b 0)
a
(gcd b (remainder a b))))
この関数を(gcd 206 40)で実行する
遅延評価と普通の評価でそれぞれ何回remainderを呼び出すのか?
答えは、遅延評価だと18回、普通の評価だと4回
遅延評価にどれだけ欠点があるのかよく示している例
0220デフォルトの名無しさん
2012/03/09(金) 12:56:37.21問題はExercise 1.20
ぐぐれば問題も答えも出てくる
英語だけど
0221デフォルトの名無しさん
2012/03/09(金) 12:57:11.72遅延評価に考慮すらされないほどの欠点があるの? どんな?
最近の情報工学を学んだ人間なら、遅延評価は普通に考慮に入れると思うけど
それほどの欠点があるとは知らなかったよ
0222デフォルトの名無しさん
2012/03/09(金) 13:00:59.99なんで一般の言語で使われないのか?
S式なんて大昔から知られていた手法なのに
なんで一般の言語で使われないのか?
Lisp布教者の主張するような利点だけじゃなくて
欠点も多いからだろ
0223デフォルトの名無しさん
2012/03/09(金) 13:11:09.37S式が一般の言語で使われないのは、S式を使いたいやつは皆Lispを使うから。
Lispに欠点が多いのは事実だけど、
マクロやS式が普及しないのは欠点とかそういう次元の話じゃない。
0224デフォルトの名無しさん
2012/03/09(金) 13:21:47.40少ないな
0225デフォルトの名無しさん
2012/03/09(金) 13:27:21.21データ構造の表現だけなら、JSONやXMLみたいな
もう少し便利な品があるからね
0226デフォルトの名無しさん
2012/03/09(金) 13:54:08.21最近は他にもそういう言語あるけど。
0227デフォルトの名無しさん
2012/03/09(金) 14:18:24.160228デフォルトの名無しさん
2012/03/09(金) 14:29:38.38殆ど使われてないのだが
0229はちみつ餃子 ◆8X2XSCHEME
2012/03/09(金) 14:33:07.71> S式が一般の言語で使われない
S式が使われた言語は LISP と呼ばれてしまうので LISP でないS式言語が存在し難いんだと思う。
0230デフォルトの名無しさん
2012/03/09(金) 14:35:59.17汎用の言語でLispと言ったらCommonLispとSchemeとClojureくらいしか知らないんだが
0231デフォルトの名無しさん
2012/03/09(金) 14:45:25.160232デフォルトの名無しさん
2012/03/09(金) 15:02:28.87汗はなんとなく分かるけど、血と紆余曲折の具体的事例が思い浮かばない
0233デフォルトの名無しさん
2012/03/09(金) 15:07:20.620234デフォルトの名無しさん
2012/03/09(金) 15:11:04.310235デフォルトの名無しさん
2012/03/09(金) 15:21:07.33(list "*" '(2 3 4) '(a b) "!" '(8 9 0))
こういう文字列とリストからなるリストをもとに
*2a!8
*2a!9
*2a!0
*2b!8
*2b!9
*2b!0
*3a!8
...
と続くものを出力したいです(文字列とリストは0回以上ランダムに表れます)
リストについては命令型言語でいうところの
for (...)
for (...)
のような処理をすることになりそうですが
どこから手をつければよいかわかりません
おそらくmapcarを使ってリストを作り直す必要があります?
どうすればよいですか
0236デフォルトの名無しさん
2012/03/09(金) 15:28:42.470237デフォルトの名無しさん
2012/03/09(金) 15:30:48.130238デフォルトの名無しさん
2012/03/09(金) 15:33:18.460240デフォルトの名無しさん
2012/03/09(金) 15:44:11.860241はちみつ餃子 ◆8X2XSCHEME
2012/03/09(金) 15:50:15.41>>237
こんな感じかな。
(define (power-display lst)
(let loop ((acc '()) (next lst))
(cond ((null? next)
(for-each display (reverse acc))
(newline))
((list? (car next))
(for-each (lambda(x) (loop (cons x acc) (cdr next))) (car next)))
(else (loop (cons (car next) acc) (cdr next))))))
(power-display
(list "*" '(2 3 4) '(a b) "!" '(8 9 0)))
0242デフォルトの名無しさん
2012/03/09(金) 15:51:56.19リスト処理だからmap系の上手い手がありそうな気がするな。
0243デフォルトの名無しさん
2012/03/09(金) 16:06:21.130244デフォルトの名無しさん
2012/03/09(金) 16:47:03.23作り変えろ、というのがLISPの思想。
0245デフォルトの名無しさん
2012/03/09(金) 17:12:13.220246デフォルトの名無しさん
2012/03/09(金) 19:01:04.41少なくなる要因は1つの行に複数の関数を押し込めるから
同様のことは、オブジェクト指向のチェーンメソッドでやっている
プログラマの目の動きを考えたとき、その視点は左から右、上から下に動くのが普通。
だから、チェーンメソッドはポーランド記法よりも理にかなっている。
けれども、チェーンメソッドである以上はオブジェクトでなければならない。
行数を短くし、1行に複数の関数を押し込めて自然な流れで読むためには、
逆ポーランド記法が理にかなっているといえる
0247デフォルトの名無しさん
2012/03/09(金) 19:28:34.82要出典
0248デフォルトの名無しさん
2012/03/09(金) 19:32:02.720249デフォルトの名無しさん
2012/03/09(金) 19:34:38.31慣れの問題なだけだからなー
XMLのタグよりよっぽど楽だし、構文の覚えやすさならLispの右に出るのってFrothくらいじゃないのか?
0250デフォルトの名無しさん
2012/03/09(金) 19:37:59.63いくつか語句を先読みしてまとめて解釈するからな
逆ポーランド記法が読みやすいなら数学なんかもそうなっているだろうし
0251デフォルトの名無しさん
2012/03/09(金) 20:05:04.34bar = fn1(fn2(fn3(fn4("foo"))) <- 上に同じ
bar = "foo".fn4.fn3.fn2.fn1 <- 左から右へ一発。オブジェクトでないとダメ
"foo" fn4 fn3 fn2 fn1 bar! <- プリミティブな型から自然に変換できる!
vimのマクロがforthで書かれていたなら、エディタ戦争はまだまだ続いていたと思うね
0252デフォルトの名無しさん
2012/03/09(金) 20:06:55.12schemeって逆ポーランド記法なの?
1 2 +
みたいな記述するん?
0253デフォルトの名無しさん
2012/03/09(金) 20:19:34.65世界制覇、いや銀河を制覇出来るって何度言ったら…
初めてでした。調子乗ってすみません。
0254デフォルトの名無しさん
2012/03/09(金) 21:45:16.32逆ポーランドだと引数が不恰好になるよ
あとリストのcarが関数の名前だとほんの少しだけマシンにやさしい
0255デフォルトの名無しさん
2012/03/09(金) 22:50:31.970256デフォルトの名無しさん
2012/03/09(金) 23:30:53.68そっか、わかりづらくてごめん
でもほんとにたいした内容じゃないからスルーして
0257デフォルトの名無しさん
2012/03/10(土) 01:05:41.88逆ポーランド記法な scheme があったら、って話だと思う
つまり、
(5 (3 4 +) *)
こういうことだよね?
案外いいかもしれない
さらに Forth のように + や * が関数だと分かってると、上のは 5 3 4 + * って書けるだろうけど
シンボル a, b, c, d に関数や数値が束縛されているとき
a b c d はどこが引数でどこが関数なのか、普通の人間には理解できないかもしれん…
メソッドチェーンは上手く表現できるんだろうけど、こんな表現を使いこなせるのは、なるほど Jedi だな
さらにもし多値を返せて、それがスタックに複数の値として残ったりなんてしたら、とてもとても…
0258デフォルトの名無しさん
2012/03/10(土) 01:06:49.20ありがとうございます
0259デフォルトの名無しさん
2012/03/10(土) 02:06:16.88その書き方だとマクロが悲惨なことにならない?
(((a 0))
('foo 'bar (a 1 <) if)
let)
0260デフォルトの名無しさん
2012/03/10(土) 02:17:06.93だから Forth は、Lisp的なマクロじゃないんだろうな
改めてS式万能だなぁ。まさしく、Lispは「発見」されたんですね
0261デフォルトの名無しさん
2012/03/10(土) 03:02:24.240262デフォルトの名無しさん
2012/03/10(土) 03:06:15.29時既に遅かったっぽいけど、自分も書いてみた。
>>241のCommon Lisp版も付けたので出遅れたのは見逃して欲しい。
http://paste.lisp.org/display/128244
0263デフォルトの名無しさん
2012/03/10(土) 05:39:21.55マクロと相性が悪いというよりツリーと相性が悪いのでは?
LispはツリーであるS式が基本なので
逆ポーランド記法は採用できないと思います。
線形リスト:
ポーランド記法でまあまあ読みやすい。
逆ポーランド記法でとても読みやすい。
ツリー:
ポーランド記法でだいぶ読みにくい。インデントで改善できる。
逆ポーランド記法でかなり読みにくい。
グラフ:
ポーランド記法でとても読みにくい。
逆ポーランド記法でとても読みにくい。
0264デフォルトの名無しさん
2012/03/10(土) 07:51:38.54あと上のLispと関係ないフレーム合戦でみんな申し合わせたようにPerl6を黙殺してて泣ける
0265デフォルトの名無しさん
2012/03/10(土) 09:46:03.03グラフ同士でも読みやすさに差があるからこうですね。
<<読みやすさランキング>>
線形リスト + 逆ポーランド記法
---- 壁0. 実行順の壁 ----
線形リスト + ポーランド記法
---- 壁1. 一直線の壁 ----
========<< 越えられない壁 >>========
ツリー + ポーランド記法
---- 壁2. 概要から詳細への壁 ----
ツリー + 逆ポーランド記法
---- 壁3. 階層構造の壁 ----
========<< 越えられない壁 >>========
グラフ + 逆ポーランド記法
---- 壁4. 実行順の壁 ----
グラフ + ポーランド記法
0266デフォルトの名無しさん
2012/03/10(土) 10:52:36.29あと、完全に後置にさせると Forth とかでも悲惨になる。
THEN
FOO @
ELSE
BAR @
COND
1 2 + 3 4 + <
IF
Lisp系言語で最初の要素がオペレータになっているのは、
compile の前に macro expansion があるから。
macro expansion のためには完全に前置か完全に後置かにしないと都合が悪い。
FORTHで完全な後置にしなくて良いのは immediate word があるから。
0267デフォルトの名無しさん
2012/03/10(土) 14:23:45.93>エターナルフォースnreverseすると死ぬ
これは一体…
0268デフォルトの名無しさん
2012/03/10(土) 17:27:10.530269デフォルトの名無しさん
2012/03/10(土) 17:42:55.78エターナルフォースブリザードとは - はてなキーワード http://d.hatena.ne.jp/keyword/%A5%A8%A5%BF%A1%BC%A5%CA%A5%EB%A5%D5%A5%A9%A1%BC%A5%B9%A5%D6%A5%EA%A5%B6%A1%BC%A5%C9
0270デフォルトの名無しさん
2012/03/10(土) 17:44:07.61> macro expansion のためには完全に前置か完全に後置かにしないと都合が悪い。
「都合が悪い」ってのは、評価時にさらに構文解析が必要になるのが問題になるってこと?
それってmacro expansionに限った話か?
0271デフォルトの名無しさん
2012/03/10(土) 18:56:43.36松本零士御大の漫画かと思いました
0272デフォルトの名無しさん
2012/03/10(土) 21:47:59.76グラフ理論のグラフじゃね?
ツリーは循環のないグラフと言い換えられる(グラフはツリーを含む)
0273266
2012/03/10(土) 22:25:57.43macro expansion に限った話ではないです。例として挙げただけ。
「都合が悪い」のは、
例えば「第二要素がオペレータ」という決まりにしてしまうと
引数が0個のマクロを定義できなくなるとかです。
マクロ定義時にマクロ名を何番目に置くか定義できるようにすると、
(macro0 macro1)
のような式でどちらを先に展開するのか、とか。
>>272
グラフで記述された言語って何?という意味の質問でした。
0274はちみつ餃子 ◆8X2XSCHEME
2012/03/10(土) 22:59:25.810275デフォルトの名無しさん
2012/03/10(土) 23:11:34.18横レスだけど面白い処理だね
control stringとリストを作ってから最後にまとめるわけか
ただ、その処理だと文字列に~sや~aが現れたときにはエラーになってしまうような。
0276デフォルトの名無しさん
2012/03/10(土) 23:26:18.14細かい話だが普通、循環のない無向グラフと無向を断わらないか。
有向だとDAGが循環はないがツリーでない判例になるから。
0277デフォルトの名無しさん
2012/03/10(土) 23:57:02.65アイヤー。"~s"とかのこと忘れてたアルよ。無駄にnilの場合とか考慮してるのにね。
エターナルフォースnreverseは、>>239で闇とか言われてたので、そんなテンションだったとき、
途中で要素を共有してたのを忘れてnreverseして自分が死んだ。相手は死なない。平和。
結局loopとかformatとか良く使わないのであんま分かんなかった。アップルパイ美味しいです。
0278デフォルトの名無しさん
2012/03/11(日) 07:14:21.07http://squab.no-ip.com:8080/wiki/435
http://ja.m.wikipedia.org/wiki/LISP
http://www.google.co.jp/search?hl=ja&q=M%E5%BC%8F+%E4%B8%AD%E8%A5%BF%E6%AD%A3%E5%92%8C&oq=M%E5%BC%8F+%E4%B8%AD%E8%A5%BF%E6%AD%A3%E5%92%8C
慣れの問題かS式のが見やすい、、
0279デフォルトの名無しさん
2012/03/11(日) 07:40:21.310280デフォルトの名無しさん
2012/03/11(日) 11:01:54.68S式が用意された理由は、データ構造というか構文木の表現のためだよ
だから本来のS式にとって、データ構造の表現は副次的な役割に過ぎない
0281デフォルトの名無しさん
2012/03/11(日) 11:13:47.61データ構造が先で、evalを理論的に説明するために、ソースコードを
データ構造で表現する必要があって、そういうことになった。
0282デフォルトの名無しさん
2012/03/11(日) 12:08:32.470283デフォルトの名無しさん
2012/03/11(日) 15:17:50.86動的データ構造が必要
FORTRANでリスト処理ライブラリを書く
リスト処理ライブラリで数式処理プログラムを書いてみた
数学やってたからλ式採用
万能関数eval発見
Lispの誕生
こんな経緯だったはず。
M式はコンスセルを意識しやすい表記として、かなり初期に考えられたはず。
0284デフォルトの名無しさん
2012/03/11(日) 17:14:10.010285デフォルトの名無しさん
2012/03/11(日) 17:50:53.77コンパイラがあったらしいように読めたような気がする。
0286デフォルトの名無しさん
2012/03/11(日) 22:50:04.17>>285
無茶言うな。
0287デフォルトの名無しさん
2012/03/11(日) 23:28:18.89には、コンパイラがある、と書いてあるように読める。
一方で、これの後半には eval があるけど、
http://www-formal.stanford.edu/jmc/recursive/node3.html
伝説によれば、ラッセルが実装してみせるまで、マッカーシーは
実装できるものと思っていなかった、とされている。
0288デフォルトの名無しさん
2012/03/11(日) 23:46:37.82FLPL(fortran list processing library)辺りからの経緯の話なんだけど。
その前にもNSS listとかIPLとか先駆的な仕事があるんですよ。
いきなりLispやLispコンパイラが生まれたんじゃなくて。
0289デフォルトの名無しさん
2012/03/11(日) 23:48:29.52なんかよく分からなくなってきた
表や図でlispの歴史をまとめているのは無いのかな
0290デフォルトの名無しさん
2012/03/12(月) 00:07:05.51IPLなければLispのようなものはLispにはなってなかったはず。
FLPLは当初IPL-IIに翻訳される予定だったが、
McCarthyがFORTRANで記述できると助言したらしい。
0291デフォルトの名無しさん
2012/03/12(月) 07:59:45.70うん、条件を見落としてた
ごめん
>>273
>>263とは別人だから真意は分からないけれど
CLや特定のSRFIを含むSchemeだと#n=と#n#で循環も書けるから
念の為にグラフも比較対象に含めたんじゃないかと思う
0292デフォルトの名無しさん
2012/03/12(月) 18:43:06.24Gaucheです
hash-table関数などのように可変個引数を取る関数に、自前のリストを出力する関数から値を渡したいのですが、形式をどのように変換すればよいのですか?
e.g.
'((foo bar) (piyo hoge))を
(hash-table '(foo bar) '(piyo hoge))のように渡したいのです
0293はちみつ餃子 ◆8X2XSCHEME
2012/03/12(月) 19:13:34.20aplly を使え。
それと hash-table の第一引数はハッシュテーブルのタイプ (比較関数) だぞ。
0294はちみつ餃子 ◆8X2XSCHEME
2012/03/12(月) 19:14:35.66こんな基本的なところでタイプミスとはカッコわりぃ〜 orz
0295デフォルトの名無しさん
2012/03/12(月) 20:20:33.73(use util.list)
(alist->hash-table '((foo bar) (piyo hoge)))
ちなみに、alistからの変換なので、元データの形式を '((foo . bar) (piyo . hoge))
としないと意図と違うことになると思う
0296デフォルトの名無しさん
2012/03/12(月) 20:21:42.120297はちみつ餃子 ◆8X2XSCHEME
2012/03/12(月) 20:30:50.45あらためでドキュメント見てて気付いたんだが、
alist->hash-table のデフォルトの比較関数は eq? ってのが書いてないのは忘れてるだけなのかなぁ。
http://practical-scheme.net/gauche/man/?l=jp&p=alist->hash-table
指摘した方がいいだろうか。
0298デフォルトの名無しさん
2012/03/18(日) 02:44:49.93この世のゴミ
早くGCに回収されろ
0299デフォルトの名無しさん
2012/03/18(日) 03:26:43.37おっぱい?
0300プログラミング超初心者
2012/03/19(月) 03:38:50.39問い:関数fを引数の第二要素を返す関数として定義しなさい。ただし引数は一つ。
0301デフォルトの名無しさん
2012/03/19(月) 03:43:00.670302デフォルトの名無しさん
2012/03/19(月) 03:53:04.02これは糖衣構文だから、このレベルが解けないくらいの初心者なら、
(define
f
(lambda (大好き おっぱい) おっぱい)
)
という感じで、糖衣構文を使わず、
defineによって f に 無名関数lambda を 束縛する、ときちんと覚えたほうがいいかも
0303302
2012/03/19(月) 03:57:18.63ちゃんと途中に引数と戻り値については説明があっただろ
そこは詰む場所じゃねーぞ
0305デフォルトの名無しさん
2012/03/19(月) 04:50:09.920306プログラミング超初心者
2012/03/19(月) 05:02:57.53何故か分からないけど(define f cadr) で解けました。
これは何かの省略した形ですかね。
ヒントを参考に(define f (lambda (x) なんちゃら))こんなので色々考えましたが
思いつきませんでした。
0307デフォルトの名無しさん
2012/03/19(月) 05:27:08.66cadrを束縛してる手続きでfを束縛するってこと。
要はcadrにfっていう別名を付けた。
(define x 10)
とかと考え方は同じ。
0308デフォルトの名無しさん
2012/03/19(月) 05:32:15.37(define f (lambda (lis) (car (cdr lis))))
が多分意図する正解だと思う。
多分 (car (cdr lis)) の部分をやらせたかったんじゃないかな。
(lambda (lis) (car (cdr lis))) は cadr として最初から定義されているので同じ意味ってことね
0309デフォルトの名無しさん
2012/03/19(月) 07:06:35.29(case ad
((a) (car sex))
((aa) (car (car sex)))
((aaa) (car (car (car sex))))
((aaaa) (car (car (car (car sex)))))
((aaaaa) (car (car (car (car (car sex))))))
((aaaaaa) (car (car (car (car (car (car sex)))))))
((aaaaaaa) (car (car (car (car (car (car (car sex))))))))
無限に続く))
これを効率よく実装するにはどうしたらいいでしょうね
0310デフォルトの名無しさん
2012/03/19(月) 08:02:33.27;;Gauche
(define (cr ad sex)
(letrec ((port (open-input-string (symbol->string ad)))
(iter (lambda (sex)
(let ((ch (read-char port)))
(cond
((eof-object? ch) sex)
((char=? ch #\a) (iter (car sex))))))))
(iter sex)))
;;aかどうかを気にしないなら(length (symbol->string ad))でもいいと思う
0311デフォルトの名無しさん
2012/03/19(月) 08:16:09.74○string-length
だった(13行目)
0312デフォルトの名無しさん
2012/03/19(月) 08:36:23.73(define (iter ls sex)
(cond
((null? ls) sex)
((char=? #\a (car ls))
(iter (cdr ls) (car sex)))))
(iter (string->list (symbol->string ad)) sex))
0313デフォルトの名無しさん
2012/03/19(月) 08:44:36.90(define (cr ad sex)
(define (iter ls sex)
(cond
((null? ls) sex)
((char=? #\a (car ls)) (iter (cdr ls) (car sex)))
((char=? #\d (car ls)) (iter (cdr ls) (cdr sex)))))
(iter (reverse (string->list (symbol->string ad))) sex))
0314デフォルトの名無しさん
2012/03/19(月) 09:15:59.790315デフォルトの名無しさん
2012/03/19(月) 09:56:32.71(if (null? ls)
arg
((car ls) (apls (cdr ls) arg))))
とでもして
(apls (map (λ (ch) aならcar dならcdr)
(stringー>list (symbol->string ad)))
sex)
みたいなのとか
0316はちみつ餃子 ◆8X2XSCHEME
2012/03/19(月) 10:06:05.34もっと積極的に (というか無闇に) Gauche の機能を使ってみた。
(define (cr a x)
($ port-for-each (cut $ update! x $ case <> ((#\d)cdr)((#\a)car)) $ cute read-char $ open-input-string $ symbol->string a)
x)
0317デフォルトの名無しさん
2012/03/19(月) 10:24:33.650318デフォルトの名無しさん
2012/03/19(月) 18:17:19.77よくわからないんだがclusureって無名関数のことだったの?
0319デフォルトの名無しさん
2012/03/19(月) 18:21:49.70無名であることとクロージャは無関係
0320デフォルトの名無しさん
2012/03/19(月) 18:42:25.98あと、無名関数という特別なものがあるとか考えるよりも、関数に名前が必要な言語と
そうでない言語があって、名前が必要ない言語では名前を付けないと無名(匿名)関数に
なる、という風に考えたほうが良いと思われ。
0321はちみつ餃子 ◆8X2XSCHEME
2012/03/19(月) 18:58:38.20http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3
>>320 を補足すると昔の方式の LISP のひとつには emacs lisp がある。
喩えば対話モードで
(lambda () 'hoge)
と入力すると
(lambda nil (quote hoge))
と返ってくる。
これは emacs lisp の中では lambda で作られる関数は単に「car が lambda というシンボルであるリスト」として表されていることを意味する。
静的な環境と結び付いていない。
あと、極論するなら Scheme の手続きは全て無名。
(define (x) 'hoge)
みたいに書いても、これは
(define x (lambda() 'hoge))
の構文糖だから。
名前は変数についているのであって関数の名前ではない。
0322デフォルトの名無しさん
2012/03/20(火) 06:14:08.18わからないので、やってみてください
0323デフォルトの名無しさん
2012/03/20(火) 07:04:51.44ほれ
(define-macro (cr ad sex)
(let loop ((ad (string->list (symbol->string ad))))
(if (null? ad)
sex
(if (char=? (car ad) #\a) `(car ,(loop (cdr ad))) `(cdr ,(loop (cdr ad)))))))
(cr a '((a) b c))
=>(a)
(cr aa '((a) b c))
=>a
(cr ad '((a) b c))
=>b
(cr add '((a) b c))
=>c
0324デフォルトの名無しさん
2012/03/21(水) 20:19:10.55これからはclojureの時代
0325デフォルトの名無しさん
2012/03/22(木) 08:22:26.090326デフォルトの名無しさん
2012/03/22(木) 13:41:51.74どんなところがそんなことないと思うのですか?
0327デフォルトの名無しさん
2012/03/22(木) 14:30:33.31wikiを自分のサイトに設置したいのですが、何かおすすめはありますか?
これまではgaucheのwilikiを使っていましたが、
wilikiではシンタックス・ハイライトを導入できそうになかったので。
0328はちみつ餃子 ◆8X2XSCHEME
2012/03/22(木) 15:12:02.26google-code-prettify なら CL や Scheme に対応してるし、 WiLiKi に導入することも簡単だよ。
0329デフォルトの名無しさん
2012/03/22(木) 15:22:44.98ありがとう。google-code-prettifyの使い方を見てみた。
javascriptとcssのファイルの読み込みはwilikiに簡単に追加できそう。
だけど、<pre class="prettyprint linenums:4">のように
pre要素のclassに任意の文字列を渡すことはwilikiではできないのでは?
0330デフォルトの名無しさん
2012/03/22(木) 16:04:46.17http://community.schemewiki.org/?scheme-style
0331デフォルトの名無しさん
2012/03/22(木) 16:11:46.88JVMやCLIのような「ホスト」環境にアクセスするのは自然な事としている所はCLやSchemeとは違うと思う
それに、共有された状態を管理する手段としてロックを推奨しないなど、まだ一般に浸透していない設計上の判断がある
その判断が良いものかどうかは別の話だけど、少なくともCからC++のように
「コンパイラを入れ替えて、多少のエラーを直せば一応移行できる。それからより良い方法を学べばいい」というわけにはいかない
俺はClojureをCLやSchemeを過去の遺物にするような何かではなく、今までも沢山あった方言の一つだと思っていて
その上でClojureが好きで、長期間続いて欲しくて、他の言語にClojureが良い影響を与えたらいいなと思う
だから「CL・Schemeは死んだ、これからはClojure」みたいな主張には頷けない
0332デフォルトの名無しさん
2012/03/22(木) 16:36:24.09括弧のネストの深さに応じて色が変わるのは
pastebinのサイトと同じっぽいな
0333はちみつ餃子 ◆8X2XSCHEME
2012/03/22(木) 16:40:39.59プロパティを追加したいだけなら
wiliki:format-page-content メソッドをオーバーロードすればいいんだよ。
next-method の結果から sxpath で pre を探して sxml:add-attr でプロパティを追加。
直接ソースコードを書き換える必要はない。
>>329
linenums に関しては記法自体を追加しないと無理かなぁ。
0334はちみつ餃子 ◆8X2XSCHEME
2012/03/22(木) 16:51:16.23r6rs のハイライトは leque さんが公開しているコードがあるのでこれと組み合わせられると思う。
http://www.katch.ne.jp/~leque/software/gauche/r6rs-shtml-markup/
0335デフォルトの名無しさん
2012/03/23(金) 00:44:36.41ありがとうございます。
いろいろいじってみます
0336はちみつ餃子 ◆8X2XSCHEME
2012/03/23(金) 01:35:41.62でも、 internal define は置換えられないのでそれを覆う関数ごと置換えることになって面倒だからそういうときは無理せずに
ソースに手を加えた方がよいかもしれず。
0337営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 10:53:21.86y/m/d形式の日付の文字列を取得するには
どうすればよいでしょうか?
rubyでいうところのこれです
Time.at(タイムスタンプ).strftime("%Y/%m/%d")
0338営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 11:14:38.100339営利利用に関するLR審議中@詳細は自治スレへ
2012/04/02(月) 11:29:54.45まさにそのとおりの関数があったのですね。ありがとうございます。
0340営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 19:58:44.16どうすればいいでしょうか?
Ruby の Find.prune のようなものを探しています。
http://doc.ruby-lang.org/ja/1.8.7/method/Find/m/find.html
0341はちみつ餃子 ◆8X2XSCHEME
2012/04/03(火) 21:01:03.89処理系は?
Gauche なら directory-fold を使うのが妥当。
http://practical-scheme.net/gauche/man/?l=jp&p=directory-fold
0342営利利用に関するLR審議中@詳細は自治スレへ
2012/04/03(火) 23:42:23.42SBCLとかclispとかでポータブルに書きたいです。
0343営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:06:18.83http://weitz.de/cl-fad/#walk-directory
0345営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:24:08.010346営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:27:53.75ここはscheme専門スレなの?またはCommon Lispだけは禁止なの?
禁止なら1に書いておくべきでしょ
あちらはCommon Lispの初心者用スレじゃないの?
0347営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:32:12.37お前にぴったりじゃん
0348営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:45:51.31> Common Lisp、SchemeをはじめとするLisp族全般のスレです
自分も知らないうちにこの一文忘れて同じ事レスったことがある。
0349はちみつ餃子 ◆8X2XSCHEME
2012/04/04(水) 00:50:46.49そこらは歴史的経緯というやつで…。 別に Common Lisp の話が禁止というわけじゃないよ。
ただ、 Common Lisp "固有の" 話は Common Lisp スレに集約した方が話が早いのであえてこっちに書かんでも、という感じ。
0350営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:58:05.340351営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 00:59:37.490352営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 01:49:47.60んじゃCLスレに誘導。
http://toro.2ch.net/test/read.cgi/tech/1330888006/105
0353営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 21:12:56.59昔、変なのがいたんだよ
Ruby最高とかそんなのもいたw
0354営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 21:24:35.210355営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 22:17:08.95comp.lang.lispで延々怪気炎を上げ続けてるWilliam Jamesさんみたいな人ですね。分かります。
0356営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 22:29:45.60海外のキ印は気合い入ってんな…
0357営利利用に関するLR審議中@詳細は自治スレへ
2012/04/04(水) 22:38:24.47それはどちらでみることができるのでしょうか?
0359営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 01:36:12.720360営利利用に関するLR審議中@詳細は自治スレへ
2012/04/05(木) 04:25:53.870361営利利用に関するLR審議中@詳細は自治スレへ
2012/04/07(土) 09:42:49.600362デフォルトの名無しさん
2012/04/13(金) 16:46:14.80'(((2 2 2) (2 2 2)) ((4 4 4) (4 4 4)) ((6 6 6) (6 6 6)))
リストの内容はここでは一番外側のリストの順番に2をかけたものとします
(make-my-list (lambda (x) (* 2 x)) '(3 2 3))
このように引数を与えて上のようなリストをつくる関数orマクロはどうかけばよいですか
(use srfi-1)と(iota 3 1)をつかって(1 2 3)を作ったあとの処理が思いつきません
common lispならloopを重ねたうえでcollectを使えばなんとかなるきがするのですが
schemeの場合どこからどう手をつければいいかわかりません
0363デフォルトの名無しさん
2012/04/13(金) 18:10:30.94自分でしっかり決めてないからだと思うよ
0364デフォルトの名無しさん
2012/04/13(金) 18:11:28.490365デフォルトの名無しさん
2012/04/13(金) 18:25:45.32(make-my-list (lambda (x) (* 2 x)) '(4 2 3))
(make-my-list (lambda (x) (x)) '(3 2 3))
の結果は?
0366デフォルトの名無しさん
2012/04/13(金) 18:40:54.71(define (make-my-list proc l)
(define (henna-list-tsukuruyo l x)
(define num (car l))
(if (null? (cdr l))
(map (lambda _ x) (iota num))
(map (lambda _ (henna-list-tsukuruyo (cdr l) x)) (iota num))))
(map (lambda (x) (henna-list-tsukuruyo (cdr l) (proc x))) (iota (car l) 1)))
(write (make-my-list (lambda (x) (* 2 x)) '(3 2 3)))
> (((2 2 2) (2 2 2)) ((4 4 4) (4 4 4)) ((6 6 6) (6 6 6)))
0367デフォルトの名無しさん
2012/04/13(金) 19:27:43.96make-my-listの第一引数には一番外側のリストの順番に対して操作する関数を、
第二引数はリストをわたします。
第二引数のリストは、説明がしづらいのですが、1番目は生成されるリストのatomの数、2番目は1番目をいくつまとめるか、3番目は2番目をいくつまとめるか、という風になります
>>365
こうしたいです
>(make-my-list (lambda (x) (* 2 x)) '(3 2 1))
(
((2 2 2) (2 2 2))
)
>(make-my-list (lambda (x) (* 2 x)) '(4 2 3))
(
((2 2 2 2)(2 2 2 2))
((4 4 4 4)(4 4 4 4))
((6 6 6 6)(6 6 6 6))
)
>(make-my-list (lambda (x) (x)) '(3 2 3))
(
((1 1 1) (1 1 1))
((2 2 2) (2 2 2))
((3 3 3) (3 3 3))
)
0368はちみつ餃子 ◆8X2XSCHEME
2012/04/13(金) 19:50:21.27部分的に共有構造になってるけどそれでもいいか?
(define (make-my-list p l)
(let ((n (car l))
(m (cadr l))
(z (caddr l)))
(map (lambda(x) (make-list m (make-list n (p x)))) (iota z 1))))
0369デフォルトの名無しさん
2012/04/14(土) 12:55:57.880370デフォルトの名無しさん
2012/04/16(月) 22:00:01.44けれど、こういう掲示板にコードをコピペで張り付けると、インデントが全部消えちゃいます。
掲示板にコピペしても、インデントが残るようにするにはどうしたらいいんでしょうか。
ちなみにエディターはemacsです。
0371デフォルトの名無しさん
2012/04/16(月) 22:05:21.75Pythonみたいなインデントに文法上の意味がある言語ならともかく
どうしてもというなら とか全角空白とか
0372はちみつ餃子 ◆8X2XSCHEME
2012/04/16(月) 23:08:37.71このスレの住人なら emacs かそれに準ずる高機能エディタを使ってます。
それにコピペして数ストロークのコマンドでインデントは再現できます。
emacs なら C-x h でバッファ全体を選択した後に C-M-\ ですね。
なので、少なくともこのスレではあまり考えなくてかまいません。
>>371 の示す手順も掲示板のクセ次第です。
にちゃんねるでは通用しても掲示板の全てで通用するわけではないです。
見る側のブラウザやフォント指定次第では幅が合わずにやっぱり表示が崩れたりする上、
実際に実行させるために空白文字に戻す必要が生じてかえって手間だったりも。
それも数ストロークのコマンドで出来ますけど。
最近ではコードの断片を保存するサービスがいくつかあります。
そういうサイトを利用して掲示板には URL を貼り付けるといったこともよく行われています。
主なところでは、
http://ideone.com/
http://codepad.org/
http://codetter.com/
https://gist.github.com/
でしょうか。
各掲示板によって (にちゃんねるなら各スレごとに) だいたいの運用方法が暗黙に定着しているので、
過去のやりとりを参考にして下さい。
0373デフォルトの名無しさん
2012/04/16(月) 23:51:34.70なければ選択状態にして右クリック
0375デフォルトの名無しさん
2012/04/17(火) 11:48:33.712chでは行頭の半角スペース・Tab は何個あっても消える。
全角スペースならおk。
0376デフォルトの名無しさん
2012/04/17(火) 16:06:43.900377はちみつ餃子 ◆8X2XSCHEME
2012/04/18(水) 22:25:05.230378デフォルトの名無しさん
2012/04/21(土) 21:54:21.81これでGauche-tkも動く〜
0379はちみつ餃子 ◆8X2XSCHEME
2012/04/21(土) 23:36:46.70それと https 通信に stunnel が不要になったのもデカいかな。
リリースに向けた作業って地味に面倒でモチベーションを維持しにくいからそうすぐってわけでもないと思うな。
0380デフォルトの名無しさん
2012/04/21(土) 23:42:08.030381はちみつ餃子 ◆8X2XSCHEME
2012/04/21(土) 23:53:48.61http://www1.axfc.net/uploader/Ne/so/131324
Gauche-tk は入れといたけど tk そのものは別途インストールしてね。
0382デフォルトの名無しさん
2012/04/22(日) 01:08:43.25ありがとー
0383デフォルトの名無しさん
2012/04/22(日) 12:30:49.560384デフォルトの名無しさん
2012/04/22(日) 12:36:45.570385デフォルトの名無しさん
2012/04/23(月) 14:13:08.180386デフォルトの名無しさん
2012/04/27(金) 18:24:18.79'((a b) c d)
と
(list (list 'a 'b) 'c 'd)
は、どこが違うんでしょうか?
0387デフォルトの名無しさん
2012/04/27(金) 18:48:39.11http://tips.lisp-users.org/scheme/index.cgi?%E3%83%AA%E3%82%B9%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B
0388はちみつ餃子 ◆8X2XSCHEME
2012/04/28(土) 00:45:03.59C++ や Java の感覚で表現するなら前者はリテラルで後者はコンストラクタによってオブジェクトを作ってるイメージかなぁ。
0389デフォルトの名無しさん
2012/04/28(土) 02:16:59.900390デフォルトの名無しさん
2012/04/28(土) 02:37:36.59いや、無理に参加しなくてもいいんだよ
0391デフォルトの名無しさん
2012/04/28(土) 03:11:40.270392386
2012/04/28(土) 08:23:46.72「quote を使うとリストを定数として書くことができる。」とか書いてあるけど
>(define symbol_1 '(1 2 3 4))
>ok
>(car symbol_1)
1
>(cdr symbol_1)
(2 3 4)
うーん、わかんない。symbol_1は定数なの?
(car 'symbol)をやってみると、
1st argument symbol to car not List object っていう風に怒られます。
0393デフォルトの名無しさん
2012/04/28(土) 08:39:01.760394デフォルトの名無しさん
2012/04/28(土) 14:56:42.22CLで書いているけどこんな形で変わってくる
ttp://ideone.com/nT1Tr
quoteは読み込みのタイミングで一回だけリストを作っているけど、
listやconsなんかは評価ごとに新しいリストを作っている。
あと、もう一度symbol_1を評価してみれば分かるけど、
carやcdrはsymbol_1を変更してない。
0395デフォルトの名無しさん
2012/04/28(土) 21:03:13.31仕組みが一発でわかるぜ
このへんはLISPでLISP書いてもわかんないとこだぜ
0396デフォルトの名無しさん
2012/04/29(日) 02:10:46.39> (car 'symbol)をやってみると、
> 1st argument symbol to car not List object っていう風に怒られます。
readした後には[ car | [ symbol | nil ]]と言う二つのcons cellになってる。
[ car | [ quote | [ symbol | nil ]]]ではない。
carの引数がsymbolというシンボルオブジェクトなのだから、リストでないと怒られて当たり前。
0397デフォルトの名無しさん
2012/04/29(日) 02:51:05.970398デフォルトの名無しさん
2012/04/29(日) 03:21:45.500399デフォルトの名無しさん
2012/04/29(日) 05:15:35.89(関数 引数)
この形式は関数の適用を意味する
関数と引数は一度しか評価されない
括弧で囲った式には、関数ではない特殊形式も存在する
(特殊形式 引数)
特殊形式の引数が評価されるかは、その特殊形式によって決まる
引数の数は関数や特殊形式によって決まる
式(1 2 3 4)は、最初の要素が関数でも特殊形式でもないため、
評価するとエラーとなる
引用符の付いた式
'(1 2 3 4)は評価すると(1 2 3 4)が返る
'(1 2 3 4)は(quote (1 2 3 4))と書ける
quoteは特殊形式であり、
引数を評価せず、そのまま返すという機能を持つ
0400デフォルトの名無しさん
2012/04/29(日) 05:18:28.64defineは特殊形式であり、右辺の式を評価した結果の別名を定義する
ここでは右辺の'(1 2 3 4)が評価され(1 2 3 4)となり、
symbol_1 → (1 2 3 4)という関連付けが行われる
symbol_1のようなシンボルは評価すると関連付けられた値を返す
式symbol_1を単体で評価すると(1 2 3 4)を返す
シンボルcarには関数が関連付けられており、
この関数はconsで作成された2値を格納するコンテナから、
最初の要素を返すという機能を持つ
式carを単体で評価するとその関数を返す
(car symbol_1)は上で説明した通り関数の適用であり、
symbol_1が評価され、その部分が(1 2 3 4)になり、
同時にcarが評価され、その部分が関数になる
それぞれの評価が終わるとcarの関数が適用され、
(1 2 3 4)の最初の要素の1が返る
0401デフォルトの名無しさん
2012/04/29(日) 05:27:06.74式(car symbol_1)のすべての評価が終わったことになり、
結果を表示した後、次の式へ移るか、入力待ち状態になる
この一連の流れをread-eval-print-loop(REPL)という
0402392
2012/04/29(日) 14:57:46.86carに束縛された関数が評価されるのと同時に、
symbol_1が評価されて(1 2 3 4)が返り、
(1 2 3 4)は、carに束縛された関数に渡されるから、
>(car (1 2 3 4))
>1
となるわけね。みんな、ほんとうにありがとう。
0403デフォルトの名無しさん
2012/04/30(月) 00:07:01.81Lispコーナーに移してきた。
0404デフォルトの名無しさん
2012/04/30(月) 21:13:09.570405デフォルトの名無しさん
2012/05/01(火) 18:43:33.280406デフォルトの名無しさん
2012/05/01(火) 20:31:54.05第4部がつまんないからだろ?
その他の部分はありきたりの言語入門書と大して変わらんし…
0407デフォルトの名無しさん
2012/05/01(火) 20:55:25.750408デフォルトの名無しさん
2012/05/01(火) 21:17:48.450409はちみつ餃子 ◆8X2XSCHEME
2012/05/01(火) 21:21:41.12このレベルなら入門者にも充分に理解できる範囲だと思うし。
が、俺はだいぶん後になってから読んだので本当に入門に適しているかどうかわかんね。
0410デフォルトの名無しさん
2012/05/01(火) 22:17:12.12若い頃あれよんで、あまりのストイックさに泣いたわ。
0411デフォルトの名無しさん
2012/05/01(火) 22:53:15.92これで岩波コンピュータサイエンスの『Scheme入門』も再版されたら文句なしなのだが。
0412デフォルトの名無しさん
2012/05/01(火) 23:03:21.11schemeの方はどんな感じ?
0413デフォルトの名無しさん
2012/05/01(火) 23:11:06.87半年強ぐらい前に日本語ネイティブな入門書として勧めたら、環境構築か忘れたけど何か欠けてるという指摘があった。
その時節電で止まってたオンライン版はみられる状態になってた。
http://karetta.jp/book/programming-gauche
0414はちみつ餃子 ◆8X2XSCHEME
2012/05/01(火) 23:41:52.38手習いと修行は問題集みたいな感じだと思うけどな。
何もしらないところから手探りで問題を問いていく内に
Scheme への理解へも深まっている、というようなコンセプト。
それはそれで入門書としてよく出来てるいい本だと思うけど、
「言語」が前面に出てるのは「プログラミング言語SCHEME」
じゃないかという感じ。 やっぱ一番最初に読む本では無いかなぁ。
0415デフォルトの名無しさん
2012/05/02(水) 04:24:10.08俺はネットで公開してる原著の方でScheme入門したけどすんなり読めたよ。
プログラミング言語そのものが初心者という人向けではないけど
Javaなり何なりわかってる人がSchemeを扱えるようになるには平易でいい。
0417デフォルトの名無しさん
2012/05/07(月) 18:40:20.76おー
msysで野良ビルドしちゃる
exeで勝手にインスコされるようなのは嫌なんよね
0418デフォルトの名無しさん
2012/05/08(火) 02:32:53.290419デフォルトの名無しさん
2012/05/08(火) 05:12:40.78保守コストとのトレードオフで採用は難しいみたいな話してなかったっけ?
ほぼひとりで開発してる上に本業もあるわけだし、時間足りんでしょう。
0420デフォルトの名無しさん
2012/05/08(火) 07:05:34.34ARMなんかは複数命令混ざってるから
JIT専門業者がいたら丸投げした方がいい
0421デフォルトの名無しさん
2012/05/08(火) 09:17:19.99どういうpros-consがあるかちゃんと示せばいいのに、なんで「ネイティブネイティブ」って
うわごとのようにくりかえすだけなんだろうか。
StalinとかChickenとか既にあるんだから。
0422デフォルトの名無しさん
2012/05/08(火) 09:44:36.96自分用にgaucheで書いたのを、配布段階でD言語で書き直した経験がある。
一般人への処理系インストールサポートは無理だった。
0423デフォルトの名無しさん
2012/05/08(火) 11:40:46.38ネイティブ化してもスレッデドコードに毛が生えた程度
ボトルネックをなんとかしないと個人でやる限界に近い
0424デフォルトの名無しさん
2012/05/08(火) 12:32:42.66形式だけ exe になってりゃいいって言うなら mingw-exify が使えるし、
プリコンパイルしておけば速度も多少は改善できる。
もともとスクリプト言語として使う分には充分すぎる速さだしな。
いずれにしても配布しにくいという問題については考えているところみたいなので、
http://blog.practical-scheme.net/shiro?20120506-being-used
どういう解決がいいのか希望があれば今の内に提案すれば方向性に
影響を与えられるかもしれないよ。
0425デフォルトの名無しさん
2012/05/08(火) 13:29:19.900426デフォルトの名無しさん
2012/05/08(火) 13:58:13.39>>424
そこに書いてある配布は、処理系自身の問題で。
>>422の言っているのはアプリの話でしょ。
最近、スクリプト系は、
処理系自身がコード配布も含めたパッケージシステム持つのが多いよね。
WindowsもMacも、aptみたいに依存関係まで管理するオープンな機構がないから。
node.jsはnpmってのが出来た。
ただ事前にnode.js, python, gitをインストールしなければいけない。
schemeで全部書いて配布に含めることである程度解決できるんじゃないか。
R(r-project.org)は配布に含まれてる。そしてCRANからインストール。
0427デフォルトの名無しさん
2012/05/08(火) 14:29:13.64gaucheもできたような
つーかexeにしたいなんて誰か書いたか?
0428デフォルトの名無しさん
2012/05/08(火) 16:53:39.03gaucheも gauche-package install <URL> で一応webから直接インストールできる。
依存関係はみてくれないみたいだし、CPANみたいに一ヶ所にまとまっててほしいけど。
0429デフォルトの名無しさん
2012/05/08(火) 17:00:58.330430デフォルトの名無しさん
2012/05/08(火) 20:31:22.63CUIを使うと壊れると思ってやがる。GUIのパッケージ管理システムも欲しい。
0431デフォルトの名無しさん
2012/05/08(火) 21:07:41.240432デフォルトの名無しさん
2012/05/08(火) 21:16:37.470433はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 21:46:15.10そもそも >>422 がネイティブコードが欲しい理由は処理系のインストールをサポートすることにネックがあると述べている。
ここではネイティブコードにするのは処理系のインストールの手間を無くす手段のひとつとしてやっているので、
処理系のインストールが充分に簡単、あるいは意識されないならばネイティブコードにする必要もなかったことになる。
確かにそれぞれ処理系の話とアプリケーションの話だけど根は同じだよ。
0434はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 21:47:32.52> 最適化の話でなくてexeにするだけなら難易度はかなり低い
> gaucheもできたような
mingw-exify だな。 コードを文字列のままくっつけるだけだけど。
速度が要る場合にはライブラリをプリコンパイルする仕組 (gencomp) を使えばちょっと速くなるし最適化も
普通にスクリプトをロードするよりはちょっと強くかかるはず。
> つーかexeにしたいなんて誰か書いたか?
exe を作らずにネイティブコンパイルする実行モデルに慣れてない人が
ネイティブコンパイル = exe を作ると理解したんじゃない?
0435デフォルトの名無しさん
2012/05/08(火) 21:55:55.75exeじゃなくてhellじゃなかろか、extension名
0436デフォルトの名無しさん
2012/05/08(火) 22:02:13.79普通のexeアプリのようにschemeアプリを配布できるの?
0437はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 22:06:36.70Gauche のライブラリがいずれにせよ必要なので単一の exe に出来るわけではない。
windows 用 gauche のパッケージに入ってる gauche-install.exe 等は mingw-exify によって処理して
作っているのでソース読めば意味がわかるよ。
0438デフォルトの名無しさん
2012/05/08(火) 22:56:15.91気にすんな
0439はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 23:04:26.330440デフォルトの名無しさん
2012/05/08(火) 23:28:39.38配布して終わりの形にできないと、作っても売れないのでおもちゃの域を出ない
0441はちみつ餃子 ◆8X2XSCHEME
2012/05/08(火) 23:47:14.53zip にまとめたアーカイブから直接ロードする機能の提案はあったので、コア付近で実装すれば scm を全部アーカイブしてしまえるかも。
zip からロードする拡張パッケージはあるけど、それが依存しているライブラリを zip に入れるわけにはいかないので、
本格的にやろうとすると Gauche 本体で対応する必要はあると思う。
0442デフォルトの名無しさん
2012/05/09(水) 00:31:32.02scheme処理系の中でも群を抜いて使われるようになると思う
0443デフォルトの名無しさん
2012/05/09(水) 04:49:51.25なら、アプリとGauche一式をzipで配っても同じことのような気もするんだが。
どうしてもexeひとつがいいなら、自己解凍アーカイブにしてexeをクリックしたら
一時ディレクトリに展開してアプリ起動する、とか?
0444デフォルトの名無しさん
2012/05/09(水) 21:11:32.34それが困る理由は、メモ帳で改造できちゃうこと
0445デフォルトの名無しさん
2012/05/09(水) 21:32:56.06オープンソース派から見ればむしろ望ましい。
0446デフォルトの名無しさん
2012/05/09(水) 21:39:11.080447デフォルトの名無しさん
2012/05/09(水) 22:20:58.230448デフォルトの名無しさん
2012/05/10(木) 02:47:58.65ちょっと頑張れば実装できるだろうけど
難読化のために機械語を使うのは正しいのか……?
0449デフォルトの名無しさん
2012/05/10(木) 03:10:09.28bad type of argument for str: #<<regmatch> ほにゃらら>というエラーメッセージが出たら、
編集ボタンが消えてしまい、そのページを編集することができなくなってしまいました
データそのものは消えていないと思うのですが、どうすればよいのでしょうか。
0450デフォルトの名無しさん
2012/05/10(木) 03:34:20.49非公式みたいだけど。
0451デフォルトの名無しさん
2012/05/10(木) 09:06:02.530452デフォルトの名無しさん
2012/05/10(木) 09:07:29.26そうですね。そうします。
0453はちみつ餃子 ◆8X2XSCHEME
2012/05/10(木) 18:53:41.680454デフォルトの名無しさん
2012/05/10(木) 19:39:47.880455デフォルトの名無しさん
2012/05/10(木) 22:28:50.490456デフォルトの名無しさん
2012/05/10(木) 22:42:12.60http://sourceforge.net/projects/gauche/files/Gauche-mingw/Gauche-mingw-0.9.3.zip/download
素晴らしい。これでusbメモリに入れて持ち運べる。
0457デフォルトの名無しさん
2012/05/10(木) 23:24:22.05こいつが終わったらmsysのもやんなきゃ
0458デフォルトの名無しさん
2012/05/10(木) 23:27:17.89windowsなら>>456を入れれば良くない?
cygwinでmingwのgaucheを動かす弊害って何かあるのかしら。
0459はちみつ餃子 ◆8X2XSCHEME
2012/05/10(木) 23:34:38.09cygwin は間に入ってファイルパスを変換する。
(cygdrive とか)
MinGW 版だとその変換が行われないので、
ファイルを見付けられないケースが起こってしまう。
0460デフォルトの名無しさん
2012/05/10(木) 23:34:59.47単なる趣味でーすw
0461デフォルトの名無しさん
2012/05/10(木) 23:52:58.27なるほど
0462デフォルトの名無しさん
2012/05/11(金) 00:44:46.562008-06-12のcygwinじゃやっぱ古すぎて駄目なのか
それともどっか壊したのかなぁ
今更新規のcygwin入れるのもなんかアホくさいなぁ
msys+mingwに至っては2004-04-30だしw
0463デフォルトの名無しさん
2012/05/11(金) 01:17:10.410464デフォルトの名無しさん
2012/05/11(金) 20:32:12.76デフォのutf8にすりゃいいけど自鯖のはsjisでやってるからなぁ
0465はちみつ餃子 ◆8X2XSCHEME
2012/05/11(金) 20:54:25.68「内部的には一貫した文字コードを使い、入出力の段階で変換、
場合によっては不完全文字列という形で保持できるけどそのエンコードが何かってのはプログラマの責任で。」
というもの。
なので、内部的に使う文字コードは最も大きい文字セットを持つ UTF-8 を選択した方が問題が少ない。
内部文字コードが Shift JIS の場合に UTF-8 から変換をかけると情報が落ちてしまう場合がある。
変換にかかる時間が惜しいほどシビアな条件とかであえて選ぶのなら話は別だけど、
惰性でやってるだけならこれを機会に変えてみるのもいいかもね。
それはそれとしてバグはこのスレに書くより WiLiKi なり Chaton なりを通じて報告した方がいいね。
0466デフォルトの名無しさん
2012/05/11(金) 22:03:28.49まぁバグじゃなくてmsysのバージョンが古いせいってのもありえるから
まだまだ要検証だけどさ
slibの場所も見落としてたし
一応0.9.1とか古い奴をビルドしてみたらこっちはできたみたいだけど
なんだろうねー
0467はちみつ餃子 ◆8X2XSCHEME
2012/05/11(金) 22:19:04.26私の方でも試してみる。
今回から out-of-tree build が出来るようになってるからこういう検証が楽でいいね。
0468はちみつ餃子 ◆8X2XSCHEME
2012/05/11(金) 22:27:49.25再現 (?) した。
ビルド中にドキュメントの処理のところでエラーになる。
../src/gosh -q -I../src -I../lib -lgauche-init /c/home/Gauche/doc/extract -jp -o gauche-refj.texi /c/home/Gauche/doc/gauche-ref.texi
*** SYSTEM-ERROR: couldn't open input file: "[conv(utf8->SHIFT_JIS) from \"c:\\home\\Gauche\\doc\\intro.texi": Invalid argument
Stack Trace:
_______________________________________
0 (with-input-from-file (find-file file) (cut filter pattern-in patt ...
At line 60 of "c:/home/Gauche/doc/extract"
1 (with-input-from-file (car a) (^ () (if *outfile* (with-output-to- ...
At line 141 of "c:/home/Gauche/doc/extract"
0469デフォルトの名無しさん
2012/05/11(金) 23:04:13.64out-of-tree build って何?
0470デフォルトの名無しさん
2012/05/11(金) 23:24:55.46そうそう、それ
ひょっとしてiconv.exeが消えてるかとも思ったけどそんなことも無かったし
0471デフォルトの名無しさん
2012/05/11(金) 23:46:58.210472はちみつ餃子 ◆8X2XSCHEME
2012/05/11(金) 23:49:37.41port-name 手続を使っているところに問題があると思う。
> PORTの名前を返します。ポートがファイルに関連付けられている場合は、ポートの名前は
> ファイル名です。そうでない場合、ポートを説明する文字列が返されます。
"[conv(utf8->SHIFT_JIS) from \"c:\\home\\Gauche\\doc\\intro.texi" というのは変換ポートを説明する文字列だ。
UTF-8 ならば UTF-8 で書かれたドキュメントを読み込むときには変換ポートを通さないのでファイル名そのものを
得られていたが、 UTF-8 から Shift JIS へ変換する変換ポートを通すときにはその変換ポートの説明を得てしまう。
よって、それを元にファイル名を付けようとすると変なことになる。
0473はちみつ餃子 ◆8X2XSCHEME
2012/05/11(金) 23:56:46.36makefile をいじればとりあえず無視して進むことは出来るよ。
でも、結果的に今回はドキュメント生成スクリプトの些細な問題だったからいいけど、
Gauche 本体の問題が顕現した可能性もあるから、
いずれにせよ検証はした方がいいってこと。
0474はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 07:27:08.46> http://chaton.practical-scheme.net/gauche/a/2012/05/11#entry-4fad58d1-d2ec6
> shiro utf-8以外のエンコーディングでconfigureするとdoc/のビルドに失敗するので、
> 修正した0.9.3.2を出しました。
> utf-8でコンパイルするぶんには急いでアップデートしなくてもいいでしょう。
0475デフォルトの名無しさん
2012/05/12(土) 15:05:52.82shiro さんってこのスレ見てんの?
0476デフォルトの名無しさん
2012/05/12(土) 15:11:13.17そもそもビルドする必要あるのだろうか
0477デフォルトの名無しさん
2012/05/12(土) 16:01:38.52おまいは doc 無しで Gauche プログラミングできるのか。
0478デフォルトの名無しさん
2012/05/12(土) 16:05:40.270479はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 17:36:33.780480デフォルトの名無しさん
2012/05/12(土) 17:42:48.370481デフォルトの名無しさん
2012/05/12(土) 17:51:50.880482デフォルトの名無しさん
2012/05/12(土) 18:13:32.830483デフォルトの名無しさん
2012/05/12(土) 18:17:28.660485デフォルトの名無しさん
2012/05/12(土) 18:24:21.78.chmファイルとかにまとまってると便利なんだけど
もっと一般的な形式があればそれで
pdfじゃ多分読まない
0486デフォルトの名無しさん
2012/05/12(土) 18:25:46.240487デフォルトの名無しさん
2012/05/12(土) 18:26:50.610488デフォルトの名無しさん
2012/05/12(土) 18:29:44.00うん、解決
0489デフォルトの名無しさん
2012/05/12(土) 18:43:38.020490デフォルトの名無しさん
2012/05/12(土) 19:42:49.920491デフォルトの名無しさん
2012/05/12(土) 19:54:40.810492デフォルトの名無しさん
2012/05/12(土) 20:09:35.94info.gzをhtmlにする方法ってなんかあったような気がするが忘れた
ttp://practical-scheme.net/vault/gauche-refj.tgz
ここリンク死んでるのな
0493デフォルトの名無しさん
2012/05/12(土) 20:47:12.54Windows版のshare/info/の下は全部gzで固まっててビルドしてくれる気すらない
0494デフォルトの名無しさん
2012/05/12(土) 20:49:59.78たしか前はそんなこと言われなかったと思ったのに
まー適当に拾ってきて入れたけど
やっぱりどっか壊してたんだな
0495はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 21:05:24.99違うよ。 それが成果物なんだよ。
元は英語、日本語を平行して記述した形式になっててそれを
Gauche で書かれたスクリプトで切り分けてその形にすんの。
0496はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 21:13:09.79gauche のソースツリーの中で doc ディレクトリに下りてから
make htmls
とすれば html 形式のドキュメントも生成してくれるよ。
0497はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 21:17:14.99だいたいは emacs から見る。
http://freedeai.180r.com/up/src/up11210.png
知りたい関数名がある箇所にポイントを持っていてちょいといくつかのキーを叩けば
そのままドキュメントを開いてくれるというのはすばらしい開発効率をもたらしてくれる。
索引から探すとかアホらしくてやっとれんので、html 版はそんなに見ないよ。
0498デフォルトの名無しさん
2012/05/12(土) 21:58:29.29windowsのemacsを使ううえで、どうすればそうできるのですか?
EmacsからGaucheを使う - karetta.jp
http://karetta.jp/book-node/gauche-hacks/004640
今のところこれしか設定していません。
0499はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 23:25:24.18俺は leque さんの gauche-mode を使ってるなぁ。
http://www.katch.ne.jp/~leque/software/repos/gauche-mode/
ドキュメントがあるディレクトリとキーバインドだけ設定すればいいようになってる。
gauche-mode と言いつつ R6RS の一部に対応してたりするので、
俺は gauche 以外の Scheme を書くときでも gauche-mode を使ったりする。
0500はちみつ餃子 ◆8X2XSCHEME
2012/05/12(土) 23:38:42.70わからん。 どちらかに断じることが出来る根拠はない。
ただ、ブログとかで Gauche 関連のことを書くと初心者の
しょーもない疑問にも応えに現れることがあるので、
割と広範囲に観測してはいると思う。
0501デフォルトの名無しさん
2012/05/13(日) 00:43:09.37ありがとうございます。
うまく設定できました。
0502デフォルトの名無しさん
2012/05/13(日) 15:33:07.960503デフォルトの名無しさん
2012/05/13(日) 16:06:36.44cygwinの方はsignal.cのとこで死んじゃうなぁ
Scm_SigCheckのあたりから
SIGPWRがundeclaredとかってさ
threads=noneにすればいけるけど
ちなみにcygwin 1.5.25-15 gcc 3.4.4だす
0504デフォルトの名無しさん
2012/05/13(日) 16:41:01.21なんか一時期まともにダウンロードできなくて見捨てた
0505デフォルトの名無しさん
2012/05/13(日) 17:14:23.490506デフォルトの名無しさん
2012/05/13(日) 18:24:39.46cygwin アプリからは Windows API も呼べるけど、
andLinux 上で動くソフトは完全な Linux アプリなわけで、
どっちが良いとか普通とかとは言えないと思う。
0507デフォルトの名無しさん
2012/05/13(日) 19:31:52.46ざっくりいってshibuyalispが現地参加者80人ust参加15人で、95人
kyotolispが現地35人、ust50人で、85人ってところみたいだから、大成功の部類じゃね?
0508デフォルトの名無しさん
2012/05/13(日) 20:07:46.920509デフォルトの名無しさん
2012/05/13(日) 22:17:04.580510デフォルトの名無しさん
2012/05/13(日) 23:07:43.05Gauche最強伝説だな
newlispで組んだpcypをGaucheで組みなおそw
0511デフォルトの名無しさん
2012/05/14(月) 16:09:00.86配信楽しみにしてます
0512デフォルトの名無しさん
2012/05/15(火) 22:39:20.95配信なんてしませんよw
linuxでもwinみたいにpeercastが見たくて作っただけだからw
0513デフォルトの名無しさん
2012/05/20(日) 13:05:52.19ちょっと、進行がぐだぐだだった感じはあったけど、結構おもしろかったよ
懇親会とかでも盛り上りは結構なもんだったし
0514デフォルトの名無しさん
2012/05/21(月) 09:11:39.86知らんかったわ。
0515デフォルトの名無しさん
2012/05/22(火) 06:11:04.36へってるのかな
0516デフォルトの名無しさん
2012/05/22(火) 08:47:09.75学習目的ってことだと最近Haskellが人気だし、Schemeの需要はそっちにいったのかもね。
書籍も売れてるみたいだし
Clojure CommonLispで活動してる人を目にする機会は地味に増えてると思うけど
0517デフォルトの名無しさん
2012/05/22(火) 09:37:45.84あの窮屈さが受けてるんだろうな。人間でもそうだけど、純粋すぎるのって
扱いづらい。恋愛になればやばい人に化けやすいしな。
0518デフォルトの名無しさん
2012/05/22(火) 15:41:26.690519デフォルトの名無しさん
2012/05/22(火) 16:00:22.492ちゃんねるの、しかもこのスレだけチェックして「元気がない」から云々とか言い出すのは
底辺に過ぎるだろ
0520デフォルトの名無しさん
2012/05/22(火) 16:27:58.810521デフォルトの名無しさん
2012/05/22(火) 18:03:16.340522デフォルトの名無しさん
2012/05/22(火) 18:06:49.020523デフォルトの名無しさん
2012/05/22(火) 20:01:57.450524デフォルトの名無しさん
2012/05/22(火) 20:59:34.390525デフォルトの名無しさん
2012/05/22(火) 22:17:37.180526デフォルトの名無しさん
2012/05/22(火) 22:29:04.730527デフォルトの名無しさん
2012/05/22(火) 23:03:28.450528デフォルトの名無しさん
2012/05/22(火) 23:14:10.260529デフォルトの名無しさん
2012/05/22(火) 23:19:48.75Worse is betterなオサレ感が嫌だという人は見かけましたが。
0530529
2012/05/22(火) 23:21:34.360531デフォルトの名無しさん
2012/05/22(火) 23:49:22.23MultiLispとかQlispとかPaiLispとかConnection Machine Lispとか
Multiprocessor LispとかParalation Lispとかディスってんのか、コラ。
お前がどれだけのLisp知っとるというんじゃ。
名前にLispって付かないParcelとかまだいろいろあるんじゃ。
0532デフォルトの名無しさん
2012/05/22(火) 23:55:13.870533デフォルトの名無しさん
2012/05/23(水) 14:08:19.06何故に並列拡張されたlispはlispじゃないって主張だと思ったのだろうか
clojureを既存のlispと比してlispっぽくないっていってる人が考えてるんは並列かいうと違うでしょ
もっと文化的なものか慣習的なものか、言語設計的なものじゃないか
0534デフォルトの名無しさん
2012/05/23(水) 14:42:48.18Common LispやSchemeに至るまで数多くのLisp方言が存在するわけだけど、
それらと比べても、Clojureって言うほど異端かな。
0535デフォルトの名無しさん
2012/05/24(木) 00:27:32.760536デフォルトの名無しさん
2012/05/24(木) 00:35:29.36Clojure以外の言語は雑魚ってな感じに
猛プッシュされてたのに
0537デフォルトの名無しさん
2012/05/24(木) 03:35:59.87JVMを利用する言語の中じゃ本体のJava以外でもっとも人気あると思うんだが
Scalaよりも活発だし
>>523
え、じゃああのスレでネタ持ち込むのおまいさんと俺だけ?
0538デフォルトの名無しさん
2012/05/24(木) 05:48:29.43かもな
0539デフォルトの名無しさん
2012/05/24(木) 05:49:25.19純粋なS四季だけじゃなくて、データ構造に余計な別カッコを使うなってこと?
0540デフォルトの名無しさん
2012/05/24(木) 09:24:53.79空前絶後の流行り方じゃないか?
もちろんScheme先生には完敗だけど。
0541デフォルトの名無しさん
2012/05/24(木) 12:29:27.54日本でもclojure採用してる会社は聞いたことがあるが, schemeってあるのか? あったら知りたい
0542デフォルトの名無しさん
2012/05/24(木) 16:01:49.270543デフォルトの名無しさん
2012/05/24(木) 16:31:28.23言語いじりの人 勉強用のおもちゃにするには実用指向すぎー。Java知らないと楽しめないー ;; あんなのlispじゃない
↑
中間層の人 ああ, Javaねえ. Javaの仕事が嫌でLispで遊んでんだけどな. でも良いかもね. ;; ちょっと興が乗らないlisp
↓
仕事でアプリ書く人 手軽に書けるしJavaで書くよりずっと良いし割と好きだわー. 他の方言もライブラリあれば使うけどねえ. ;; 新しいlisp
0544デフォルトの名無しさん
2012/05/24(木) 18:25:05.540545デフォルトの名無しさん
2012/05/24(木) 19:49:17.22専ブラ入れて使えよカス
0546デフォルトの名無しさん
2012/05/24(木) 20:58:29.220547デフォルトの名無しさん
2012/05/24(木) 22:40:22.62かちゅ〜しゃだと隙間空けられると困るのよね
0548デフォルトの名無しさん
2012/05/24(木) 23:26:04.870549デフォルトの名無しさん
2012/05/28(月) 21:28:36.450550デフォルトの名無しさん
2012/05/30(水) 22:28:35.320551デフォルトの名無しさん
2012/05/30(水) 23:57:26.93すぐにバグフィクスしてくれるのはありがたいね。
0552デフォルトの名無しさん
2012/06/03(日) 14:04:02.780553デフォルトの名無しさん
2012/06/05(火) 22:59:08.59新卒未経験からこの業界に入り1年たったのですが、上司から廃れない知識を
身に着けたならSICPのようなものを1冊読むといいといわれました。
scheme処理系を調べてところ「Dr racket」がありインストールしたのですが、
方言?が多すぎて何を選択すればよいかわかりません
SICPの課題を行うには「language」を何に選択すればいいのでしょうか?
0554デフォルトの名無しさん
2012/06/05(火) 23:18:06.490555デフォルトの名無しさん
2012/06/06(水) 00:07:04.020556デフォルトの名無しさん
2012/06/06(水) 00:25:42.34これをインストールしてみたらどう?
http://www.neilvandyke.org/racket-sicp/
0557デフォルトの名無しさん
2012/06/06(水) 16:43:59.91すごいタイトルのlisp本が出るみたい
どんなもんでしょう?
0558デフォルトの名無しさん
2012/06/06(水) 16:46:28.45Lispは函数型言語ではない
0559デフォルトの名無しさん
2012/06/07(木) 01:01:29.61そのボリューム自体がある種のはったりで、騙されてるんじゃないか、という
気が今は少しするんだよなぁ。
0560デフォルトの名無しさん
2012/06/07(木) 01:02:53.69Schemeと書いてるから、多分手続きっぽいLispっぽいコードはほとんど
無いんじゃないだろうか。
0561デフォルトの名無しさん
2012/06/07(木) 11:52:26.90lispとsmalltalkの違いがわかりやすく書いてある
0562デフォルトの名無しさん
2012/06/07(木) 15:34:44.95かたまりをかたまりのまま処理してかたまりを返してるイメージはないなぁ。
map、写像って言葉も集合の元から別の集合の元への対応のことであって
集合から別の集合への対応ではないし。
0563デフォルトの名無しさん
2012/06/07(木) 21:28:01.87言語の違いじゃなくて、単に選択したライブラリの違いだな。
0564デフォルトの名無しさん
2012/06/07(木) 21:36:17.97Scheme処理系は道具として利用してだけなのは、その短いアブストラクト読むだけでわかるしね。
558は文句言うだけが能のバカ。
0565デフォルトの名無しさん
2012/06/07(木) 22:42:27.240566デフォルトの名無しさん
2012/06/07(木) 22:46:45.220567デフォルトの名無しさん
2012/06/07(木) 22:50:38.640568デフォルトの名無しさん
2012/06/07(木) 22:56:13.53内容は悪くないけど衒学趣味がうざいって書かれているな
そうのが気にならない人向けか
0569デフォルトの名無しさん
2012/06/14(木) 00:33:58.960570デフォルトの名無しさん
2012/06/14(木) 00:47:23.200571デフォルトの名無しさん
2012/06/14(木) 05:08:02.81CLではnullは関数みたいだけど
0572デフォルトの名無しさん
2012/06/14(木) 07:27:16.680573デフォルトの名無しさん
2012/06/14(木) 08:53:04.06んでnilはないんじゃね?
0574デフォルトの名無しさん
2012/06/14(木) 10:15:29.440575デフォルトの名無しさん
2012/06/14(木) 20:45:09.760576デフォルトの名無しさん
2012/06/14(木) 22:26:10.810577デフォルトの名無しさん
2012/06/15(金) 00:56:33.460578デフォルトの名無しさん
2012/06/15(金) 02:04:01.550579デフォルトの名無しさん
2012/06/15(金) 02:30:44.410580デフォルトの名無しさん
2012/06/15(金) 23:09:40.02処理系はgauche0.9.3です。
循環二次元リスト(トーラスのようなもの)を作成する手続き(make-field)を書いています。
(circulize)はリストを循環リストに変換する関数です。
(define circulize (lambda (lis) (begin
(set-cdr! (last-pair lis) lis)
lis)))
(define makeField (lambda (w h) ($ circulize $ make-list w $ circulize $ make-list h 0)))
これを実行すると[e.g. gosh> (makeField 3 3)]、
#0=(#1=(0 0 0 . #1#) #1# #1# . #0#)が出力されます。
本来ならば
#0=(#1=(0 0 0 . #1#) #2=(0 0 0 . #2#) #3=(0 0 0 . #3#) . #0#)としたいのですが、すべて同じものを参照しているようです。
make-listは初期値を参照渡しで受け取っている?ようです。(自分でもよくわかりません)
makeFieldのうまい書き方はないでしょうか。
下手な説明ですが、どうか御教授ください。
0581デフォルトの名無しさん
2012/06/15(金) 23:30:47.160583はちみつ餃子 ◆8X2XSCHEME
2012/06/16(土) 00:28:10.39($ circulize $ map circulize $ make-list w $ make-list h 0))
0584デフォルトの名無しさん
2012/06/16(土) 06:18:58.560585デフォルトの名無しさん
2012/06/16(土) 08:20:32.87右結合ってことでいいのか?
こういう半端な演算子もどきは廃れる
0586デフォルトの名無しさん
2012/06/16(土) 11:17:42.94かっこが減らせるのは素晴らしい
0587デフォルトの名無しさん
2012/06/16(土) 11:53:06.64Gaucheでしか動かないとか?
0588デフォルトの名無しさん
2012/06/16(土) 13:08:23.350589デフォルトの名無しさん
2012/06/16(土) 16:27:36.46数十年経っても同じ事を繰り返すLISPer
括弧の呪縛から開放されるのは無理だな
0590580
2012/06/16(土) 16:33:09.48どうやらmapも循環リストでは停止しないようです。
mapに渡されるリストのうち、どれかが有限なら停止するとのことです。
http://www.rcc.ritsumei.ac.jp/~kaki/scheme/14.html
0591はちみつ餃子 ◆8X2XSCHEME
2012/06/16(土) 18:12:28.30Gauche 特有と言えばそうだけど、
R5RS の範囲内で書けるマクロなので、
便利だと思ったら別の処理系で動かすことは出来るよ。
0592デフォルトの名無しさん
2012/06/16(土) 18:31:47.250593デフォルトの名無しさん
2012/06/16(土) 19:31:17.33こないだgauche-develでなんかやりとりしてて解決したっぽかったけど、まだ止まるの?
http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2012-May/234419.html
0594デフォルトの名無しさん
2012/06/19(火) 08:07:18.03まだコンパイル成功しない
0595デフォルトの名無しさん
2012/06/20(水) 12:48:14.940596デフォルトの名無しさん
2012/06/20(水) 18:23:04.50ブログ系は今日だし、Amazon他ネットショップ系は26日だ…どっちなんだろう?
0597デフォルトの名無しさん
2012/06/25(月) 14:47:00.54取次の日付と、書店店頭の日付の違いらしい。
八重洲ブックセンターは19日に一冊入荷していたとか。
21日午後に行ったら、その朝開店直後に買われてしまっていて入手できなかった。
0598デフォルトの名無しさん
2012/06/25(月) 14:52:14.690599デフォルトの名無しさん
2012/06/25(月) 15:39:57.790600デフォルトの名無しさん
2012/06/25(月) 18:44:22.510601デフォルトの名無しさん
2012/06/27(水) 00:10:13.800602デフォルトの名無しさん
2012/06/27(水) 12:51:07.730603デフォルトの名無しさん
2012/06/27(水) 17:53:24.460604デフォルトの名無しさん
2012/06/27(水) 23:38:54.270605デフォルトの名無しさん
2012/06/28(木) 11:35:38.88http://iiyu.asablo.jp/blog/2012/06/20/6486231
0606デフォルトの名無しさん
2012/06/28(木) 13:11:15.280607デフォルトの名無しさん
2012/06/28(木) 16:56:25.600608デフォルトの名無しさん
2012/06/28(木) 20:00:35.970609デフォルトの名無しさん
2012/06/28(木) 20:06:28.15後半はラムダ算法やら継続やら楽しみなものがいっぱいだ。
0610デフォルトの名無しさん
2012/06/28(木) 21:11:00.11> 動かすことで、数の不思議、美しさを実感できるようになるには、
> 別のアプローチがあるべきだというので、書かれたのが本書だ。
> だから、SICPに挫折した人には、ぜひ、薦めたい。
SICP読んでないけど、数の不思議、美しさを実感する本なの?
0611デフォルトの名無しさん
2012/06/28(木) 21:53:12.84まともな書評が出るには早すぎるな
0612デフォルトの名無しさん
2012/06/28(木) 22:27:35.730613デフォルトの名無しさん
2012/06/28(木) 23:40:55.75解説だけですごい増ページだな。
3600円も割安に感じる。
0614デフォルトの名無しさん
2012/06/28(木) 23:43:21.560615デフォルトの名無しさん
2012/06/28(木) 23:59:03.300616デフォルトの名無しさん
2012/06/29(金) 00:18:35.02一万円近くするのかなと思ったら三千円台だったので安いと。
もともと高校生の時に著者のオイラーの贈り物を読んでたののもあるし、
内容が濃くみえたのと文体が相性良さそうだったのもあるが。
0617デフォルトの名無しさん
2012/06/29(金) 00:25:46.64分厚いね。
素数の話はとっぱらって後半だけなら持ち運びやすいのに。
0618デフォルトの名無しさん
2012/06/29(金) 00:34:39.340619デフォルトの名無しさん
2012/06/29(金) 00:34:40.03一冊にしがみつくより専門書にあたれとだけ言っておく
0620デフォルトの名無しさん
2012/06/29(金) 01:15:18.420621デフォルトの名無しさん
2012/06/29(金) 01:56:18.49Amazonからまだ来ない
0622デフォルトの名無しさん
2012/06/29(金) 02:42:03.25届くの楽しみとかtwitterでやれ
0623デフォルトの名無しさん
2012/06/29(金) 03:49:35.400624デフォルトの名無しさん
2012/06/29(金) 07:23:08.53俺も最初8600円かと思って見直した
0625デフォルトの名無しさん
2012/06/29(金) 14:14:23.480626デフォルトの名無しさん
2012/06/29(金) 14:27:21.670627はちみつ餃子 ◆8X2XSCHEME
2012/06/29(金) 18:25:59.930628デフォルトの名無しさん
2012/06/29(金) 22:26:36.580629デフォルトの名無しさん
2012/06/29(金) 22:27:58.580630デフォルトの名無しさん
2012/06/29(金) 22:37:55.86(define (fuga a)
(match a
(hoge #t)
(_ #f)))
こう書くとmatchの中のhogeにaの値が束縛されてしまって関数fugaに何を渡しても#tになってしまうんですけど
このhogeを外に定義しているhogeとして認識させる方法はありますか?
一応((? (pa$ = hoge)) #t)は考えたのですがだいぶ冗長な気がして
環境はGaucheです
0631デフォルトの名無しさん
2012/06/30(土) 02:41:54.20処理系によっては似たライブラリがある
0632デフォルトの名無しさん
2012/06/30(土) 03:01:29.050633デフォルトの名無しさん
2012/06/30(土) 03:45:34.43> 処理系によっては似たライブラリがある
似てるだけじゃ困るってのが、SRFIの(ry
0634デフォルトの名無しさん
2012/06/30(土) 08:51:27.44SRFIないのかな、もしかして。
0635はちみつ餃子 ◆8X2XSCHEME
2012/06/30(土) 09:28:50.08match の構文としては ? を使う他にない。
あらかじめ
(define (hoge? x) (= x hoge))
とでも定義しておけば
((? hoge?) #t)
と書けてちょと簡潔に見えるかも。
オブジェクトと比較するために述語として与える必要があるのは、Scheme では比較の方法が多様だから一般化が難しいという理由があると思う。
ここでは = で比較したいということだが、 string=? を使いたいときだってあるだろうし、eq? で充分だってときもある。
主要なものだけ特別に用意するという戦略も有りだと思うけど、なるべく一般化したがるのが Scheme 風だからな。
0636デフォルトの名無しさん
2012/06/30(土) 14:42:25.04LISPが嫌だからSchemeやってるのに、オフィシャルの仕様がLISPに追従してもらったら困る
0637デフォルトの名無しさん
2012/06/30(土) 16:28:26.000638デフォルトの名無しさん
2012/06/30(土) 16:49:17.25「嫌いな美代ちゃんと仲良くするから困る」pgr
0639デフォルトの名無しさん
2012/06/30(土) 17:26:17.35素数夜曲でも買って嫁
0640デフォルトの名無しさん
2012/06/30(土) 17:37:45.46もうおばちゃんになってそう
0641デフォルトの名無しさん
2012/06/30(土) 18:29:14.090642デフォルトの名無しさん
2012/06/30(土) 18:57:20.871/3くらい立ち読みして、初歩的な内容ばっかりで買うの止めた。
5,6年前なら喜んで買って読んだんだろうけど。
0643デフォルトの名無しさん
2012/07/01(日) 23:37:44.25なるほど、納得しました
丁寧な回答ありがとうございます
0644デフォルトの名無しさん
2012/07/02(月) 00:02:34.930645デフォルトの名無しさん
2012/07/02(月) 14:37:11.99schemeの処理系としてgaucheを使ったって後書きに書いてあるね
前半部分(約350ページ)は理論的なことをざっと話す感じで、
紙とペンで読み進めるのを想定しているか。
後半部分(約500ページ)は前半部分の実装+アルファで、
R5RSに機能を追加していく形をとってる
SICPでいうなら理論的な説明と実装を完全に分離したような本、かな
0646デフォルトの名無しさん
2012/07/02(月) 15:17:23.640647デフォルトの名無しさん
2012/07/02(月) 17:18:07.940648デフォルトの名無しさん
2012/07/03(火) 13:07:28.65racketはオールインワンのscheme処理系って位置付けてる。
0649デフォルトの名無しさん
2012/07/03(火) 15:32:33.830650デフォルトの名無しさん
2012/07/04(水) 16:58:22.60思ってたよりも大作だよこれは
0651デフォルトの名無しさん
2012/07/04(水) 21:09:08.24を
'('(1 4 5 8) '(2 5 6 9) '(3 8 7 0))
に変換したいんですが、どう書けば
いいんでしようか?
0652デフォルトの名無しさん
2012/07/04(水) 21:17:54.58でいけないか?
少なくともGaucheなら、mapは可変個引数だったはず
0653652
2012/07/04(水) 21:22:45.25Lispにもあるかもね
0655デフォルトの名無しさん
2012/07/05(木) 04:11:18.49老婆心ながら
(define hoge '((1 2 3) (4 5 8) (5 6 7) (8 9 0)))
;; 外側のquoteひとつだけで良いんだぜ
;; 俺の使ってる処理系だと内側のquoteつけると結果が違ってしまうぜ
(apply map list hoge)
;; >654 さんの答をもういちどそのまま書いてやったぜ〜ワイルドだろ〜
0656デフォルトの名無しさん
2012/07/05(木) 05:40:24.89(apply map list
'('(1 2 3) '(4 5 8)
'(5 6 7) '(8 9 0)))
と書いたら
((quote quote quote quote)
(1 2 3) (4 5 8) (5 6 7) (8 9 0))
となりました。
0657デフォルトの名無しさん
2012/07/05(木) 06:30:47.300658651 忍法帖【Lv=2,xxxP】 【東電 51.2 %】
2012/07/05(木) 06:43:38.14> ;; 外側のquoteひとつだけで良いんだぜ
久しぶりにschemeを使うことになって、
忘れていました。簡易スプレットシートが
欲しいんですが、演算処理機がガラケーしか
無くて、BiwaSchemeを使っています。
0659651
2012/07/05(木) 06:54:32.91助けられています。
回答レスして下さった>>652さん、
>>655さん、ありがとうございました。
0660デフォルトの名無しさん
2012/07/05(木) 13:41:32.210661デフォルトの名無しさん
2012/07/05(木) 20:20:06.83創価はカエレ
0662デフォルトの名無しさん
2012/07/09(月) 22:43:32.90いつもニコニコあなたのマシンに這い寄る処理系、ニルラトホテプですっ♪
0663はちみつ餃子 ◆8X2XSCHEME
2012/07/09(月) 22:54:19.090664デフォルトの名無しさん
2012/07/10(火) 12:17:32.95なんでいきなり創価認定なのかと思ったら大作つながりかwww
0665デフォルトの名無しさん
2012/07/10(火) 14:06:36.030666デフォルトの名無しさん
2012/07/10(火) 14:34:31.49sasagawa888: 素数夜曲、著者の印税を心配してしまう。今時こんな立派な装丁で、ページ数から行ったら3600円は安すぎる。
読者は限定されるんで売れたとしてもベストセラーみたいなわけにはいかない。儲け無しでいいのだ!という豪快さを感じる。
0667デフォルトの名無しさん
2012/07/10(火) 14:57:08.220668デフォルトの名無しさん
2012/07/10(火) 15:01:19.520669はちみつ餃子 ◆8X2XSCHEME
2012/07/10(火) 18:04:30.89このご時世、専門書と言えども5000円を越えるようだと俺は躊躇するかもしんない。
0670デフォルトの名無しさん
2012/07/10(火) 18:06:42.85きちんと全部読み切ることを前提として、取捨選択に筆者の断腸の
思いが垣間見られる、必要なことの抽出に努力した教科書、という
スタイルの本ではない。
0671デフォルトの名無しさん
2012/07/10(火) 18:09:03.33前半は過去の本の内容と同じだから、労力は半分だと思う
ふーん、GEBと内容かぶってるんだ?
0673デフォルトの名無しさん
2012/07/10(火) 23:05:22.980674デフォルトの名無しさん
2012/07/10(火) 23:47:12.28これだけで100円分はもとをとれた気がする
0675デフォルトの名無しさん
2012/07/10(火) 23:56:52.770676デフォルトの名無しさん
2012/07/11(水) 00:11:50.01合掌
0677デフォルトの名無しさん
2012/07/11(水) 00:26:45.420678デフォルトの名無しさん
2012/07/11(水) 00:53:35.660679デフォルトの名無しさん
2012/07/11(水) 02:28:21.840680デフォルトの名無しさん
2012/07/12(木) 15:21:52.52読んでないから文脈がわからんが、
xがある代数システムGの単位元で、かつ、yもGの単位元ならば、x=y
ってことなんじゃないの?
一見あたり前のことだけど、ある性質を持つ対象は全て同一の対象である、
こういう特徴を持つことになる性質かどうかをはっきりさせることは、
数学と計算機の間を行ったり来たりする時に重要。
0681デフォルトの名無しさん
2012/07/12(木) 22:57:03.340682デフォルトの名無しさん
2012/07/13(金) 00:15:07.420683デフォルトの名無しさん
2012/07/13(金) 00:43:01.50($ <list>)と((($ <string>) . _) . _)ではダメでした
0684デフォルトの名無しさん
2012/07/13(金) 02:04:58.44連想リストはリストの特殊な場合だから、連想リストかどうかだけチェックすればいい。
Andrew Wrightのパターンマッチ (GaucheやRacketなどで使える)なら
((key . val) ...) で連想リストにマッチする。変数keyにはキー位置の要素の
リスト、valには値位置の要素のリストが入る。
普通のリストでもマッチかけたければその後に (item ...) だ。
空リストを連想リスト扱いにしたくなければ
((key1 . val1) (key . val) ...) だな。
0685デフォルトの名無しさん
2012/07/13(金) 23:39:18.97((key . val) ...)で期待する動作になりました
ありがとうございます
...を使えばよかったのですね
今さらになりますが環境はGaucheでした
0686はちみつ餃子 ◆8X2XSCHEME
2012/07/14(土) 09:43:30.62パターンマッチを使わないで判別するとしたらこんなのはどうかな。
(define alist? (every$ pair?))
0687デフォルトの名無しさん
2012/07/14(土) 13:32:14.84http://developers.slashdot.jp/story/12/07/12/1025214/
0688デフォルトの名無しさん
2012/07/14(土) 19:21:56.140689デフォルトの名無しさん
2012/07/15(日) 11:43:37.13そろそろ死ぬんじゃね?
0690デフォルトの名無しさん
2012/07/15(日) 12:45:31.77それ何ヶ月も前に発表されて話題になってた記事だし。
TwitterとかでもかなりRTされてたから結構みんな知ってるんじゃない?
むしろ、何でスラドが今更取り上げてんの、って俺も思ったよ。
0691デフォルトの名無しさん
2012/07/15(日) 13:42:17.000692デフォルトの名無しさん
2012/07/15(日) 13:57:12.89勉強になります
後で検討してみます
0693デフォルトの名無しさん
2012/07/15(日) 21:45:03.350694デフォルトの名無しさん
2012/07/21(土) 19:50:22.070695デフォルトの名無しさん
2012/07/23(月) 15:21:32.470696デフォルトの名無しさん
2012/07/24(火) 12:43:34.51ACL9.0キテタ
お値段はイカほどでしょう?
0697デフォルトの名無しさん
2012/07/24(火) 12:59:01.35いつも$599でしょう
0699デフォルトの名無しさん
2012/07/25(水) 19:25:25.38http://franz.com/products/packages/
$599〜 にはなってますね。
趣味で使うのならFree版で良いんじゃないですか。
0700デフォルトの名無しさん
2012/07/25(水) 22:05:04.40スパム判定でもされて届かなかったのかもしれないが。
0701デフォルトの名無しさん
2012/07/25(水) 23:01:24.77納品したり配布したりする場合、Professional Edition以下だと別途ライセンスの契約必須なはず。
http://www.franz.com/products/packages/
http://www.franz.com/support/documentation/current/doc/runtime.htm
http://jp.franz.com/base/product_runtime.html
ついでにProfessionalだと32ビットオンリーなのも注意。
あと、保守契約に一年ごとにライセンスの25%掛かるとも書いてる。
http://jp.franz.com/base/support.html
契約が切れてるとアプリケーションを配布できないとのこと。
ちゃんと使う気なら先にサポートにメールして確認した方が良いよ。日本語オーケーなんだし。
0702デフォルトの名無しさん
2012/07/25(水) 23:59:30.37typed racket
chickenの型指定記述
他に何あったかな
処理系ごとに書き方ちがうのなんとかしてほしい
0703デフォルトの名無しさん
2012/07/26(木) 00:50:15.51と本来言いたいところなんだけど、文法はさておき、対応状況はまちまちだよね。
fixnumくらいなら大抵どれでもサポートしてるけど、それ以上になると。
SRFIで提案してみるとかすれば、Schemeでも将来的には統一されるかもよ。
0704デフォルトの名無しさん
2012/07/26(木) 03:10:38.26occurence typingっていう若干依存型っぽい感じの型システムで実は凄い奴だよ。local type inferenceも付いてる
0705デフォルトの名無しさん
2012/07/26(木) 07:59:05.77Typed Racket は寧ろ速度落ちてたけどな。
0706デフォルトの名無しさん
2012/07/26(木) 11:43:41.83類似してるわけでもないのね
0707デフォルトの名無しさん
2012/07/26(木) 12:29:46.55インタプリタじゃない? 実行時型チェックが入るから。
コンパイラの方は特段遅くなる要素はない。
http://docs.racket-lang.org/ts-guide/optimization.html
0708デフォルトの名無しさん
2012/07/26(木) 13:24:38.37もっともテストコードは
#lang typed/racket
(: tarai (Integer Integer Integer -> Integer));#lang racketの場合、この行は除去
(define (tarai x y z)
(if (<= x y)
y
(tarai (tarai (sub1 x) y z) (tarai (sub1 y) z x) (tarai (sub1 z) x y))))
(display (tarai 14 7 0))
だけど。それぞれ10回くらい time で時間計ると、明確に #lang racket の方が速い。
0709デフォルトの名無しさん
2012/07/28(土) 06:10:54.10呼ばれる可能性があるから、taraiエントリポイントでの型チェックは
外せないんじゃないかなあ。あとtaraiが再定義される可能性があるから、
再帰部分をローカルエントリポイントに置き換えることができない。つまり
taraiが呼ばれるたびに型チェックが入っちゃう。
ローカル関数を定義してそこで再帰するとか、モジュールをうまくいじって
taraiが外から決して呼ばれず再定義もされないってことがコンパイラに
はっきりわかるようにしたら、速くなったりしない?
Stalinみたいにコンパイラがプログラムの全てを知っているって処理系なら、
mainエントリポイントから辿ってtaraiエントリの型チェックが不要であると
結論できるだろうけど。
0710デフォルトの名無しさん
2012/07/29(日) 07:26:14.72(define lx (list x))
;;lx = (12.3)
(set! x 23.4)
;;lx = (23.4)
こんな感じのポインターのlistみたいなのつくろうと思ったら
delay使うしかないのでしょうか
0711デフォルトの名無しさん
2012/07/29(日) 08:45:54.10リスト使うとか
> (define x (list 12.3))
> (define lx (list x))
> (set-car! x 23.4)
> (map car lx)
サンク使うとか
> (define x 12.3)
> (define lx (list (lambda () x)))
> (set! x 23.4)
> (map (lambda (f) (f)) lx)
逆に、delay使っちゃうと、最初にforceした時点で値が確定して
それ以降の変数の変化が追えないような気が・・・
0712デフォルトの名無しさん
2012/07/29(日) 08:48:44.61具体的に何をやりたいかだけど、グローバル変数が変化したのに追従させたいなら
(list (lambda () x)) とサンクにしておいて値が必要になる度にサンクを呼び出すとか。
0713はちみつ餃子 ◆8X2XSCHEME
2012/07/29(日) 16:08:34.83(define lx (list 12.3))
(define-syntax x
(identifier-syntax
(_ (list-ref lx 0))
((set! _ a)
(set-car! lx a))))
;; lx = (12.3)
(set! x 23.4)
;; lx = (23.4)
0714デフォルトの名無しさん
2012/07/29(日) 23:02:16.08あるリストに大して何度か連続でmapやfilterを適応していきたいとき
一行で書くと大変なことになるからいくつかにわけることになると思うんだけど
そのわけかたのセオリーというか作法みたいのを知りたい
単に一行をインデントでわけるのか局所変数を介してわけるのか
複数の部分適応の関数にして最後に合わせるのか
自分で思いついたのは上の3つ
0715デフォルトの名無しさん
2012/07/29(日) 23:14:48.170716デフォルトの名無しさん
2012/07/30(月) 00:18:30.130718デフォルトの名無しさん
2012/07/31(火) 13:26:41.850719デフォルトの名無しさん
2012/07/31(火) 14:57:38.70意味では、これがpointerに相当するだろう。
http://practical-scheme.net/wiliki/schemexref.cgi?box
といっても、lispの代表的なデータ構造(コンスセル等)は全て間接参照してるので、
ある意味全部ポインタのようなものだとも言える。
>>710 についてはちょっと誤解があるようだけどね。たぶん>>710がしたいことは、
「グローバル変数xのアドレス(のようなもの)」を取れないか、って話だと思う。
そういうものはない。グローバル変数x自体をboxにしておくしかない。
0720デフォルトの名無しさん
2012/07/31(火) 16:12:38.40ポインタの参照先なんて管理してたらポインタの速度面のメリットが吹っ飛ぶ
つまりポインタのソースがGCされたらぬるぽ
0721デフォルトの名無しさん
2012/07/31(火) 17:31:47.86これでデバッガやウィンドウシステムやネットワークシステム書いてた。
0722デフォルトの名無しさん
2012/07/31(火) 17:47:08.35でおk
0723デフォルトの名無しさん
2012/07/31(火) 18:05:02.63set-car!
すればいいのか。しかしracketはset-car!ない
0724デフォルトの名無しさん
2012/07/31(火) 18:10:03.76(require racket/mpair)
(let ((lst (mlist 1 2 3)))
(set-mcar! lst 4)
lst)
とかになる。
0725デフォルトの名無しさん
2012/07/31(火) 23:56:08.660726デフォルトの名無しさん
2012/07/31(火) 23:57:48.550727デフォルトの名無しさん
2012/08/01(水) 03:21:50.86速度が必要なところはそれで書いてる。GCされ得るものを指す時はGCによる移動を
禁じておかないとだめとか、型のチェックをしてくれないとか、Cのポインタより
使い勝手悪いけど。出てくるコードはまあまあ。
0728はちみつ餃子 ◆8X2XSCHEME
2012/08/01(水) 07:33:12.52共有オブジェクト (ダイナミックリンクライブラリ) に繋げられればほぼ何でもアリなわけだけど、
Gauche 拡張モジュールの dyncomp みたいにコードの中に C を埋め込むようなのとか面白いな。
0729デフォルトの名無しさん
2012/08/01(水) 10:27:27.880730デフォルトの名無しさん
2012/08/01(水) 10:49:15.60小さなライブラリを用意しておくだけでメモリのどこにでも書き込めるので、
そう違う話でもないと思うけどな。
0731デフォルトの名無しさん
2012/08/01(水) 11:04:03.52> 小さなライブラリを用意しておくだけでメモリのどこにでも書き込めるので、
こんなんじゃどうにもならない。
0732はちみつ餃子 ◆8X2XSCHEME
2012/08/01(水) 14:57:30.01N88-BASIC にあった peek/poke のイメージがあったからあんな感じのかと思ったけど、
もっと高機能なものなんかな。
ちょっと解説してくれんか。
0733デフォルトの名無しさん
2012/08/01(水) 23:19:54.26で、次のようなプログラムを考える
(define addr (get-addr obj))
(define n (peek addr))
(define c (cons 0 0))
(poke addr n)
addr 番地から値を読んで書き戻しているだけだから、普通は何も起こらない。
が、cons の場所で GC が動作し、objの表すオブジェクトが移動されてしまうと、
poke はなんだかよくわからない場所に値を書き込んでしまうことになる。
Boehm GC はオブジェクトを移動させないから、
gauche は生のポインタをユーザに使わせるのは比較的簡単。
copying GC を使ってる処理系だと一工夫必要。
0734デフォルトの名無しさん
2012/08/02(木) 02:09:22.74変数のアドレスなんか得て何するつもりだよ
0735デフォルトの名無しさん
2012/08/02(木) 05:09:13.50メモリの位置についたラベルだからそのアドレスを取ることに意味があるけど、Lisp系では
変数は値についたラベルなので、そのアドレスという概念自体がない。内部的に固定された
入れ物が用意されてればそのアドレスは取れるけど、そういうものがあるとは限らないし。
>>710 は、本当にやりたいこと(多分間接参照をかますことだろう) を「ポインタ」と言ってる
ところに混乱があるんじゃないかと思った。Lispでは間接参照には別のやり方がある。
それとは別の話で、Lispオブジェクトのアドレスを得て何かしたい、っていうのも、無くはない。
構造的なバイナリデータをLisp世界では(simple-array (unsigned-byte 8) (*)) で
扱ってて、たまにバイナリとしてアクセスしたい。しかもforeign typeのオーバヘッドを避けたい、なんて時。
もちろん処理系の内部に依存しまくったコードになる。
0736デフォルトの名無しさん
2012/08/02(木) 11:46:08.81Schemerでldb@Common Lispは知らないとか?
今はldbをsetfできるけど、昔はsetfはldbで実装されていた。
Common Lispの歌にそう書いてある。
Lisp自身で自分を言語拡張するにはこういう機能があると便利。
0737デフォルトの名無しさん
2012/08/02(木) 11:49:34.64?
0738デフォルトの名無しさん
2012/08/02(木) 15:06:02.24GCと共存しつつメモリいじるなんて開発者自身ぐらいしか危なくてできないだろ
LISPの言語拡張ってそういう意味じゃないし
0739デフォルトの名無しさん
2012/08/02(木) 15:32:46.36> LISPの言語拡張ってそういう意味じゃないし
そりゃ今時のライトユーザ感覚。
0740はちみつ餃子 ◆8X2XSCHEME
2012/08/02(木) 21:52:57.18C# にだって fixed ステートメントがある。
処理系側でその程度のほんの少しの配慮があれば充分に安全にできるんじゃね?
マクロが出来る前の Lisp はあたらしい構文が必要なら処理系をいじるのは普通だったときいたことがある。
それを Lisp の上からしたくなるのは自然な流れだし、Common Lisp の仕様に逆アセンブラが含まれているのは、
アセンブリまで下りていく必要があったということを示していると思う。
そういったことが Lisp 的でないという考え方は、
十分な処理系 (とそれを動かせるだけの高性能なハードウェア) がある現代だから言えることじゃないかな。
0741デフォルトの名無しさん
2012/08/03(金) 01:26:00.080742デフォルトの名無しさん
2012/08/03(金) 07:19:37.190743デフォルトの名無しさん
2012/08/03(金) 10:17:30.15普通のPCでLISPを動かせるようになった理由ってただ単にメモリが増えたからでしょうか?
0744デフォルトの名無しさん
2012/08/03(金) 10:30:52.27走らせるために好まれた)、速くなったというのもある。
0745デフォルトの名無しさん
2012/08/03(金) 11:12:05.12Z-80(8bitCPU)でもLispは動いてましたよ。
組み込みのエディタもあったし数式処理も出来た。
0746デフォルトの名無しさん
2012/08/03(金) 11:15:54.37ハードウエアがLispに追いついたから。
半世紀近く掛かりました。
0747デフォルトの名無しさん
2012/08/03(金) 12:05:30.62LispマシンやCommon Lispともなるとある程度必要だけど。
それでも初期のMacLispやSymbolics程度なら90年代前半には追い付いてる。
0748デフォルトの名無しさん
2012/08/03(金) 13:29:31.13今はもうどのPCでも十分速いからすっかり廃れましたっていう感じでは。
0749デフォルトの名無しさん
2012/08/03(金) 14:20:47.18けどC登場以降は、多くの言語の実行環境がCで書かれるようになり、
汎用基本ライブラリもCで書かれるようになってくると、
UNIXみたいなCを基本としてどんな言語でも使える環境の方がよくなってきた。
速度の問題よりどっぷりLispがいいのか、
もっと別の言語も局面に応じて使いたいのかが分かれ目になってる。
そもそもMacLisp全盛期は汎用機の上で書かれて、
数値計算もFORTRANより速いケースがあったくらい。
もちろんそれはLispマシン登場以前の話。
昔は専用ハードウェアが必要だったというのは全く事実に反する。
0750デフォルトの名無しさん
2012/08/03(金) 14:49:24.480751デフォルトの名無しさん
2012/08/03(金) 14:50:16.360752デフォルトの名無しさん
2012/08/03(金) 19:37:59.46Haskellは日本語処理が欠点
0753デフォルトの名無しさん
2012/08/03(金) 21:29:19.33[x (list 1 2 3)]
[w (append x x)]
)
(display y)(newline)
(set-car! x 11)
(display w)(newline);=>(1 2 3 11 2 3)
)
なっとくいかない
0754デフォルトの名無しさん
2012/08/03(金) 21:30:34.510755デフォルトの名無しさん
2012/08/03(金) 21:36:25.350756デフォルトの名無しさん
2012/08/03(金) 21:38:31.31そういえば処理系作った本人が append のコードを思いつくのに3ヶ月かかったという話を聞いた気がする
Prologだったかも知れん
0757デフォルトの名無しさん
2012/08/03(金) 22:04:01.07こうですか、わかりません ><
0758デフォルトの名無しさん
2012/08/03(金) 23:13:33.96最後のリストの複製は作らないからだよ
appendの仕様に複製かそのままかが含まれてるかは知らないけど
0759デフォルトの名無しさん
2012/08/04(土) 00:49:51.69処理系の進化とあいまってメリットなくなりましたくらいだな
0760デフォルトの名無しさん
2012/08/04(土) 01:04:36.67世の中から隔絶された島のようなもん
0761デフォルトの名無しさん
2012/08/04(土) 01:11:50.70LispのDNAを含まない言語は少数派。
0762デフォルトの名無しさん
2012/08/04(土) 03:08:19.810763デフォルトの名無しさん
2012/08/04(土) 04:13:21.070764デフォルトの名無しさん
2012/08/04(土) 21:03:01.81自動プログラミングはLISP系が主流だから、コードを吐き出したプログラムまで含めれば、LISPが超主流だと思う
0765デフォルトの名無しさん
2012/08/05(日) 08:11:41.820766デフォルトの名無しさん
2012/08/05(日) 08:18:47.44蝉ってうるさいよな
0767デフォルトの名無しさん
2012/08/05(日) 08:28:30.71以来disり続けている爺さんとか想像すると気が遠くなるな
0768デフォルトの名無しさん
2012/08/05(日) 12:51:34.30太古の地球に異星人の船が飛来する。
地上に降り立ったLisp型宇宙人は黒い液体を飲み、
自らのDNAを地球の処理系に拡散させる
0769デフォルトの名無しさん
2012/08/05(日) 14:30:05.090770デフォルトの名無しさん
2012/08/05(日) 16:55:02.51今探したら消えてる(作ってた学生が卒業してサイト消えたっぽい)
0771デフォルトの名無しさん
2012/08/05(日) 21:07:34.21適切なバインディング作るかLLVM-IR吐いてLispでDSL作る時にバックエンドとして使うのは悪くないはず
0772デフォルトの名無しさん
2012/08/06(月) 12:58:56.880773デフォルトの名無しさん
2012/08/06(月) 22:32:25.63なんせ
made by secret alien technology.
っすよ
0774デフォルトの名無しさん
2012/08/06(月) 23:54:22.200775デフォルトの名無しさん
2012/08/07(火) 01:19:28.180776デフォルトの名無しさん
2012/08/07(火) 17:14:24.00lispがないよ
0777デフォルトの名無しさん
2012/08/07(火) 20:09:46.31仮にLLVMをバックエンドとしてSchemeを実装するとき、
継続はどうすればいいのだろう?
やっぱり、ネイティブスタックではなくて自前のコールスタックを
持たざるを得ないのかな?
Stalinは継続を諦めているんだっけ?
0778デフォルトの名無しさん
2012/08/07(火) 20:56:41.79そうだろうね、自分で最適化アセンブラ書くより楽かもしれないが手間はかかると思う
以前調べたときは一旦生成したコールスタック内の関数書換も出来なかった
Stalinは知らない
0779デフォルトの名無しさん
2012/08/07(火) 21:51:38.470780デフォルトの名無しさん
2012/08/08(水) 10:44:10.64epub版真剣に検討してほしい
0781デフォルトの名無しさん
2012/08/08(水) 17:04:04.070782デフォルトの名無しさん
2012/08/08(水) 22:11:20.700783デフォルトの名無しさん
2012/08/08(水) 23:14:15.490784デフォルトの名無しさん
2012/08/08(水) 23:39:38.93スターバックスで12時間居座って読破した
0785デフォルトの名無しさん
2012/08/08(水) 23:49:51.230786デフォルトの名無しさん
2012/08/09(木) 00:03:15.010787デフォルトの名無しさん
2012/08/09(木) 01:39:46.720788デフォルトの名無しさん
2012/08/09(木) 04:59:21.90人によっては分かった積もりにはなりやすい
0789デフォルトの名無しさん
2012/08/09(木) 12:33:40.850790デフォルトの名無しさん
2012/08/09(木) 16:03:17.400791デフォルトの名無しさん
2012/08/09(木) 16:33:53.460792デフォルトの名無しさん
2012/08/09(木) 17:42:09.16perl を使ったことがないけれども、
他の人だったら perl を使うんだろうなという用途で俺は使ってる。
0793デフォルトの名無しさん
2012/08/10(金) 01:59:18.550794デフォルトの名無しさん
2012/08/10(金) 02:07:59.040795デフォルトの名無しさん
2012/08/10(金) 16:48:11.730796デフォルトの名無しさん
2012/08/10(金) 20:36:26.82待ちhtml5
0797デフォルトの名無しさん
2012/08/10(金) 22:08:50.760798デフォルトの名無しさん
2012/08/10(金) 22:23:13.65gaucheじゃ無理だと思う
0799デフォルトの名無しさん
2012/08/11(土) 10:46:58.40このfast lispというものの中央にある突起?は何なのだろうか。
そもそもlispマシンをどういう風に動かしていたのか想像できない。で動いていたのか想像できない。
パンチカード式?
0800デフォルトの名無しさん
2012/08/11(土) 12:19:51.24パネル部分は、ブートストラップとかハードウェアステイタスなどの
低レベルな部分を扱うスイッチとLEDじゃないかと。
0801デフォルトの名無しさん
2012/08/11(土) 13:20:27.55Forth, Pascal, Prologマシンまであるよ。
ハードが言語に特化されているw
0802デフォルトの名無しさん
2012/08/11(土) 17:13:41.020803デフォルトの名無しさん
2012/08/11(土) 17:15:37.73いずれにしても速度が遅いから、ローエンドマシンでなければ磁気テープを併用したはず。
一足違いで 1990年代にお世話になったが、当時の学生実験では、あー、あれだ、TTL 74Nと LS がちゃんぽんだったなあ‥‥。
0805デフォルトの名無しさん
2012/08/11(土) 20:26:16.39国へかえるんだな おまえにも家族がいるだろう
0806デフォルトの名無しさん
2012/08/11(土) 20:39:18.61ForthやPrologも一番下が8inch片単のドライブでしょ。当時の標準。
0807デフォルトの名無しさん
2012/08/11(土) 21:07:26.05今まで作ったAI全部入れてどこまでSFになるか試したい
0808デフォルトの名無しさん
2012/08/11(土) 21:11:58.18カシオが昔、AI-1000ってLisp専用のポケコンだしてた。
0809デフォルトの名無しさん
2012/08/11(土) 21:12:03.66というかスマートフォンでいいんじゃ…
0810デフォルトの名無しさん
2012/08/11(土) 21:29:08.73http://www.legoturingmachine.org/
0811デフォルトの名無しさん
2012/08/11(土) 21:33:27.03srfi-56がそれっぽいかと思ったのですが実装している実装系がほとんどないみたいなので
0812デフォルトの名無しさん
2012/08/11(土) 22:55:00.462chだとアクセス規制で書き込めなかったりするし、過去ログを集積したり検索するのにも向かない。
そういうのを作ったら移動してもいいという人はいるのだろうか。
0813デフォルトの名無しさん
2012/08/11(土) 23:02:36.98SFになるような自作AIっていったいどんな・・・
お願いだからネットに繋いで世界戦争とか起こさないでよね。
0814デフォルトの名無しさん
2012/08/11(土) 23:07:46.68心配するな >>807 は未来から来たネコ型ロボットに抹殺される。
0815デフォルトの名無しさん
2012/08/11(土) 23:15:07.710816デフォルトの名無しさん
2012/08/11(土) 23:16:15.880817はちみつ餃子 ◆8X2XSCHEME
2012/08/11(土) 23:21:14.82Lisp 専門というわけではないけど、Qiita とか QA@IT とかいったサイトでは駄目かな?
Scheme なら WiLiKi もある。
ANS-prog は今までに Lisp の話題が出てないなぁ。
0818はちみつ餃子 ◆8X2XSCHEME
2012/08/11(土) 23:23:38.37R6RS であれば (rnrs bytevectors (6)) ライブラリを使えるんじゃないかな。
http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-3.html
0819デフォルトの名無しさん
2012/08/11(土) 23:29:33.46どういう意味?
0820デフォルトの名無しさん
2012/08/12(日) 00:16:52.63corewarsとかどうよ?w
0821デフォルトの名無しさん
2012/08/12(日) 01:18:11.63アポーのsiriなんかもAIなのか?
0822デフォルトの名無しさん
2012/08/12(日) 01:50:36.34分野と目的をものすごく限定すれば2001宇宙の旅のHALと同じくらいにはなってる
0823デフォルトの名無しさん
2012/08/12(日) 02:38:05.76これがあれば万々歳なのですがR6RSはまだあまり使える環境がないというイメージがあります
実際はどうなんでしょうか
0824はちみつ餃子 ◆8X2XSCHEME
2012/08/12(日) 03:09:02.75俺が把握してる R6RS 処理系は
・ Larceny
・ Mosh
・ Racket
・ IronScheme
・ Ypsilon
・ Guile (Version 2 以降)
・ Petite Chez Scheme
・ sagittarius
あたりかな。
sagittarius はマクロまわりが不完全だったり Ypsilon は多値の扱いが微妙だったりだとか、
それぞれに癖があるけど、癖を理解すれば基本的にはどれもよく出来た処理系だと思うよ。
0825デフォルトの名無しさん
2012/08/12(日) 18:05:09.460826デフォルトの名無しさん
2012/08/12(日) 22:34:27.69ありがとうございます
イメージは単なる思い違いだったようです
bytevectorを使おうと思います
0827デフォルトの名無しさん
2012/08/13(月) 04:10:43.02公開するんだ
0828デフォルトの名無しさん
2012/08/13(月) 13:54:13.21懐かしい
0829デフォルトの名無しさん
2012/08/13(月) 14:27:57.982ch系個人板サービスのわいわいkakiko
(規制緩めで)に一票。専用ブラウザを
使えば濃い検索もできる。
0830デフォルトの名無しさん
2012/08/14(火) 02:08:35.53どの参考書がいいでしょうかね
0831デフォルトの名無しさん
2012/08/14(火) 02:26:11.14http://wiki.fdiary.net/lisp/?%A5%C6%A5%F3%A5%D7%A5%EC+%28Lisp+Scheme%A5%B9%A5%EC%29
0832デフォルトの名無しさん
2012/08/14(火) 09:07:08.550833デフォルトの名無しさん
2012/08/14(火) 11:24:31.21実装から入ってしまうと抽象的概念を抽象的に考え難くなってしまうような気がする。
処理系のソースを読むのがためになることは否定しないけど、
まずはまともな文章を読んで学んだ方がいいと思うなぁ。
0834デフォルトの名無しさん
2012/08/14(火) 11:30:41.540835デフォルトの名無しさん
2012/08/14(火) 11:42:15.50>ラップトップパソコン
懐かしい響きだな。
3日間で終わるような本はないなぁ。。
0836デフォルトの名無しさん
2012/08/14(火) 12:03:12.770837デフォルトの名無しさん
2012/08/14(火) 13:01:36.24>>830 のスキルがわからないのに
0838デフォルトの名無しさん
2012/08/14(火) 16:45:57.42Lispは数式をそのままプログラムにするという狂った思想そのもの
必要なのは数学的な思考力
0839デフォルトの名無しさん
2012/08/14(火) 21:48:46.78構文木ではなくて・・・?
0840デフォルトの名無しさん
2012/08/14(火) 23:10:30.580841デフォルトの名無しさん
2012/08/14(火) 23:47:16.830842デフォルトの名無しさん
2012/08/15(水) 00:29:40.440843デフォルトの名無しさん
2012/08/15(水) 00:40:13.49これわかるわー。Lisp/Schemeには実装レベルとは別の抽象化された独自の世界があるよね。
それこそが他の言語とは違うLisp/Schemeのおもしろさだと思ってる。
0844デフォルトの名無しさん
2012/08/15(水) 01:54:04.660845デフォルトの名無しさん
2012/08/15(水) 02:00:13.390846デフォルトの名無しさん
2012/08/15(水) 22:45:39.10席がなかったらコメダ
0847デフォルトの名無しさん
2012/08/15(水) 23:57:18.970848デフォルトの名無しさん
2012/08/16(木) 03:11:02.090850デフォルトの名無しさん
2012/08/16(木) 07:37:18.34単に実装しやすいから?
それとも使えるから?
0851デフォルトの名無しさん
2012/08/16(木) 10:39:28.63kanrenなんてこのスレでも初出じゃないか?
kはキムチ臭いのも影響してるかも
0852デフォルトの名無しさん
2012/08/16(木) 11:15:18.85http://www.moongift.jp/2012/08/20120815-3/
0853デフォルトの名無しさん
2012/08/16(木) 13:00:52.96ごくありふれた類のもんだと思うが
0854デフォルトの名無しさん
2012/08/16(木) 13:41:03.52https://github.com/kripken/emscripten/wiki
Javascriptで書いたx86エミュレーター上でLinuxカーネルが動く時代だしな。
http://bellard.org/jslinux/
0855デフォルトの名無しさん
2012/08/16(木) 16:44:06.97あと、RacketとかChickenにJavaScriptへコンパイルするためのライブラリがあった気がする。
他にScheme2Jsとかも。
Common LispだとParenscriptは割と使われてる印象。
ちょっと名前は忘れちゃったけど、ブラウザ上で動く対話的でEmacs風な環境も見掛けた覚えが。
興味があったら色々触ってみると面白いと思うよー。
0856デフォルトの名無しさん
2012/08/16(木) 17:06:05.55結局Javascriptを知ってないといけない。
ClojureScriptとかはもっと突っ込んだ実装になってるらしいけど使ったことないや。
0857デフォルトの名無しさん
2012/08/16(木) 19:36:56.87とりあえずreasoned schemer本は注文した
0858デフォルトの名無しさん
2012/08/17(金) 02:24:47.040859デフォルトの名無しさん
2012/08/17(金) 02:27:30.560860デフォルトの名無しさん
2012/08/17(金) 04:42:26.890861デフォルトの名無しさん
2012/08/17(金) 07:13:05.600862デフォルトの名無しさん
2012/08/17(金) 09:07:29.310863デフォルトの名無しさん
2012/08/17(金) 17:04:56.93LISPを学ぶサイトを作った
ttp://d.hatena.ne.jp/nishiohirokazu/20120707/1341654840
BiwaSchemeをベースにCodecademyみたいなものがあればいいな。
括弧の対応のとれるエディタもJavascriptで実装する必要はあるが。
0864デフォルトの名無しさん
2012/08/18(土) 00:52:25.99lex/yaccでほとんどできるじゃん
0865デフォルトの名無しさん
2012/08/18(土) 00:55:20.770866デフォルトの名無しさん
2012/08/18(土) 00:56:26.710867デフォルトの名無しさん
2012/08/18(土) 01:04:38.2395%はできる
残りの5%ができない
0868デフォルトの名無しさん
2012/08/18(土) 01:32:07.080869デフォルトの名無しさん
2012/08/18(土) 01:42:54.54・マクロ使ってる場合
・関数としてのS式を動的生成した場合
0870デフォルトの名無しさん
2012/08/18(土) 01:50:27.270871デフォルトの名無しさん
2012/08/18(土) 02:43:41.320872デフォルトの名無しさん
2012/08/18(土) 06:40:15.570873デフォルトの名無しさん
2012/08/18(土) 08:51:22.32その処理系でマクロ展開する処理をlispで書く
そういう実装以外を見たことない
0874デフォルトの名無しさん
2012/08/19(日) 00:31:11.020875デフォルトの名無しさん
2012/08/19(日) 01:30:50.14環境はGauche 0.9.3.3です。
あるスクリプトで生成したS式(文字列主体のデータセットです)を一旦ファイルに書き出し、別のプログラムで読み取りたいのですが、
単純に(print)すると文字列の二重引用符が外れてしまい、(read)することができないようです。
なんとか直接扱える形式にしたいのですが、良い解決策を御教授ください。
0876デフォルトの名無しさん
2012/08/19(日) 01:43:52.690877デフォルトの名無しさん
2012/08/19(日) 01:46:54.12あ、知りませんでした。これにて解決しました。
腑甲斐無い気持になりました
ありがとうございまいした。助かりました。
0878デフォルトの名無しさん
2012/08/19(日) 02:10:50.430879デフォルトの名無しさん
2012/08/19(日) 02:36:02.84(equal? A B) =>#t
が保障される
0880デフォルトの名無しさん
2012/08/19(日) 03:25:39.84誰か書いてよ。
おう!明日一日かけて読むから
0882デフォルトの名無しさん
2012/08/19(日) 11:44:18.85積読ための書籍だから。
0883デフォルトの名無しさん
2012/08/19(日) 12:21:52.05((●)(●)) < Gaucheで検索して君もSchemerになってよ!
V
0884デフォルトの名無しさん
2012/08/19(日) 13:51:27.25ちょっと笑った
素数夜曲の梟のAAか
0885デフォルトの名無しさん
2012/08/20(月) 18:14:51.32schelogのリファレンスみないのだけど
何故なんだろう
0886デフォルトの名無しさん
2012/08/20(月) 18:27:06.190887デフォルトの名無しさん
2012/08/24(金) 14:51:05.140888デフォルトの名無しさん
2012/08/24(金) 14:57:41.700889デフォルトの名無しさん
2012/08/24(金) 15:07:56.880890デフォルトの名無しさん
2012/08/24(金) 15:19:52.98引数可変の関数もあるんだし先頭にもってきてくれよ
(foo args ... )
(foo-cps k args ...)
(foo-cps-wrong args ... k)
0891デフォルトの名無しさん
2012/08/24(金) 19:35:20.85好きなようにすればええやん。
0892デフォルトの名無しさん
2012/08/25(土) 00:43:53.25暗黙の継続のスタックポインタを用意すれば
わざわざ引数伝播させる必要はないわけだ
0893デフォルトの名無しさん
2012/08/25(土) 01:12:09.410894デフォルトの名無しさん
2012/08/25(土) 01:24:59.700895デフォルトの名無しさん
2012/08/25(土) 11:02:11.78理屈ではフル継続に対応できそうな感じだったけどよく覚えてない
0896デフォルトの名無しさん
2012/08/25(土) 11:16:03.52rhizome/pi とか chicken とか。
chicken は処理の各ステップで一旦止めて出力する機能があるので CPS 変換した状態のコードも見れるよ。
0897デフォルトの名無しさん
2012/08/25(土) 15:31:47.970898.
2012/08/25(土) 19:24:18.59ttp://planet.racket-lang.org/display.ss?package=miniKanren.plt&owner=dfriedman
0899デフォルトの名無しさん
2012/08/25(土) 22:47:39.81(caro _car _cdr result)
じゃなくて
(caro result _car _cdr)
にしてほしかった
継続の話に関係するけど
0900デフォルトの名無しさん
2012/08/26(日) 20:47:55.680901デフォルトの名無しさん
2012/08/30(木) 06:17:27.88このとおりにやったはずなのにslatexが動いてくれません
scmxlateでmy-slatex-src.scm生成するとこまではできました
gosh my-slatex-src.scm slatxdoc.tex
と入力しても何も反応がありません
0902デフォルトの名無しさん
2012/08/30(木) 13:44:48.74S式をTeXに変換するプログラム自作して、コピペしてる
HTML版も自作した
たぶん、その方が早いのではないかと
0903デフォルトの名無しさん
2012/08/30(木) 14:23:29.01なんとかして動かしたい
0904デフォルトの名無しさん
2012/08/30(木) 18:18:30.40run-slatex.scmといった名前で作っておいて
(add-load-path "." :relative)
(load "slatex.scm")
(define (main args)
(if (null? (cdr args))
(exit 1 "Usage: gosh run-slatex.scm file.tex")
(process-main-tex-file (cadr args)))
0)
gosh /path/to/run-slatex.scm source.tex とかすればいい。
0905904
2012/08/30(木) 18:21:36.29を置くって前提ね。
0906デフォルトの名無しさん
2012/09/01(土) 05:10:25.92思ってたものとかなり違ってました
単にSchmeのコードをlatex中に書きやすくするものだったようでした
0907デフォルトの名無しさん
2012/09/02(日) 23:21:00.88ttp://www.scheme.com/tspl3/
0908デフォルトの名無しさん
2012/09/03(月) 00:23:18.501500円までなら買う
0909デフォルトの名無しさん
2012/09/03(月) 01:01:40.81こっちの方が新しい
0910デフォルトの名無しさん
2012/09/04(火) 00:11:49.690911デフォルトの名無しさん
2012/09/04(火) 00:19:13.790912デフォルトの名無しさん
2012/09/04(火) 01:22:23.530913デフォルトの名無しさん
2012/09/04(火) 22:36:06.83分厚くて読むの大変なので
とりあえず自炊して読んでるけど、最初から電子書籍なら楽ちんなのに(PDF販売って日本だとオライリーしかやってないんだよな)
0914デフォルトの名無しさん
2012/09/05(水) 01:15:20.260915デフォルトの名無しさん
2012/09/05(水) 01:29:20.55http://uni.2ch.net/ebooks/
0916デフォルトの名無しさん
2012/09/05(水) 01:57:44.250917デフォルトの名無しさん
2012/09/05(水) 14:58:50.33これって英作文例文集としては使えるぐらいにちゃんとした文章になってるの?
0918デフォルトの名無しさん
2012/09/05(水) 16:28:41.82それが問題になるんなら読んでみれば?
意味が分らなくてゴネてるんじゃないよな?
0919デフォルトの名無しさん
2012/09/05(水) 16:45:19.40読めなくて聞いてるならアホだし
読まずに聞いてるならもっとアホだよな
0920デフォルトの名無しさん
2012/09/05(水) 16:46:19.510921デフォルトの名無しさん
2012/09/05(水) 20:50:29.560922デフォルトの名無しさん
2012/09/05(水) 20:58:05.890923デフォルトの名無しさん
2012/09/05(水) 23:22:15.370924デフォルトの名無しさん
2012/09/05(水) 23:50:47.010925デフォルトの名無しさん
2012/09/06(木) 00:13:44.140926デフォルトの名無しさん
2012/09/06(木) 00:17:41.290927デフォルトの名無しさん
2012/09/06(木) 01:47:37.54知ってる単語が8割くらいあって、プログラムのコードがあるからなんとなく読めてる気になってるだけじゃないの?
0928デフォルトの名無しさん
2012/09/06(木) 01:49:58.610929デフォルトの名無しさん
2012/09/06(木) 01:53:19.24ヨーロッパ行ったときフランス語の国だったけど、喫茶店のおばちゃんでも普通に英語通じたわ、単語だけじゃなくてちゃんと会話でね。
台湾・中国も同じ。
海外行くと、日本の特異性・閉鎖性を感じざるを得ないね。
0930デフォルトの名無しさん
2012/09/06(木) 02:04:15.09バイト先に中国人のバイトが4人くらいいるけど、中国人同士で言葉が通じないから日本語で話してる
0931デフォルトの名無しさん
2012/09/06(木) 02:05:23.280932デフォルトの名無しさん
2012/09/06(木) 07:35:16.59だから単語の羅列だけだとアホに聞こえる。
日本語は単語+助詞で文法上の位置づけも表している。
ほとんどが名詞の羅列だけの歌もあるくらいだ
「よこはま たそがれ」
0933デフォルトの名無しさん
2012/09/06(木) 18:20:49.943ヶ月でもまじめに取り組めばだいぶ違うだろ目覚めろ
0934デフォルトの名無しさん
2012/09/06(木) 20:44:09.96少なくとも3年間はまじめに取り組んでるはずなんだけどな…
0935デフォルトの名無しさん
2012/09/06(木) 22:04:02.65X bar theoryとS式間のtranslatorなら誰か作っているかと思うんだが
見当たらなかった
日本語と英語は鏡像構造が見られるのだから
s式の操作の感じで言語も操作できる時代がきてもいいのに
0936デフォルトの名無しさん
2012/09/06(木) 22:15:07.29実用Common lisp にそれっぽい例題がいくつかあるから改良すればいいと思う
0937デフォルトの名無しさん
2012/09/06(木) 23:06:47.10語順、構造に重点がある言語しってるよ。
Lisp って言うんだ!
0938デフォルトの名無しさん
2012/09/07(金) 06:04:29.930939デフォルトの名無しさん
2012/09/08(土) 02:22:09.71eval と apply の違いがよく分からないです
0940デフォルトの名無しさん
2012/09/08(土) 03:13:06.510941デフォルトの名無しさん
2012/09/08(土) 13:28:09.91evalはなんでも評価
appyは関数適用のみ行う下請け関数
単純な処理系ではapplyがevalのほとんどを占めるけど、
組み込み関数のapplyやCLみたいにマクロがあれば、
applyはevalの一部にすぎないとはっきりすると思われ
0942デフォルトの名無しさん
2012/09/09(日) 07:00:14.49そんなぼくちんでも理解できるくらいに、Schemeの継続をわかりやすく説明した資料を紹介してください。
なおSchemeの基本文法は知っています。継続がどうしても理解できない。
0943デフォルトの名無しさん
2012/09/09(日) 08:29:40.00誰もが通る道。「なんでも継続」はちょっと実装寄りすぎるかもしれない。
使う立場からすれば、要はsetjmp/longjmpの一般的なものなんだけど、それでは納得しない?
あるいは、こういう説明は?
ttp://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E3%81%AA%E3%81%9CScheme%E3%81%AB%E3%81%AFreturn%E3%81%8C%E7%84%A1%E3%81%84%E3%81%AE%E3%81%8B
0944デフォルトの名無しさん
2012/09/09(日) 10:49:06.75setjmpが保存するのがレジスタのみに対して
継続は取り出した時点の状態を全て保存する
ただし保存といってもコピーを作るわけではなく
継続の中身を更新すると、それを参照する継続も影響を受ける
親子の関係にある継続は広域脱出や例外処理として機能し、
兄弟関係にある継続はスレッドのように機能する
0945デフォルトの名無しさん
2012/09/09(日) 15:07:59.50私は継続は納得できたけど、継続で飛んで行った後にスタックと今まで開いてたリソースがどうなるかが気になる
0946デフォルトの名無しさん
2012/09/09(日) 15:15:16.860947デフォルトの名無しさん
2012/09/09(日) 15:44:30.90クロージャーの原理と同じく参照が切れない限り残るだけ
0948デフォルトの名無しさん
2012/09/09(日) 15:48:32.17参照が切れるか処理系を終了させるか明示的に閉じない限り
そのまま残り続ける
0949デフォルトの名無しさん
2012/09/09(日) 16:05:17.71GCが呼ばれるまでは残り続ける
GCが参照の切れたリソースを検出した時、
リソースに関連付けられたハンドラが呼び出されて
クローズ処理が行われる
スタックは継続を構成する1要素だから、
継続の参照が切れればGCの呼び出しで回収される
0950デフォルトの名無しさん
2012/09/09(日) 18:08:20.23もう一つ言語覚えようとおもってる人に。
669 デフォルトの名無しさん sage 2012/09/06(木) 22:14:03.20
今見つけたんだけど、なんか面白そう:
48時間でSchemeを書こう
ttp://ja.wikibooks.org/wiki/48%E6%99%82%E9%96%93%E3%81%A7Scheme%E3%82%92%E6%9B%B8%E3%81%93%E3%81%86
0951デフォルトの名無しさん
2012/09/09(日) 19:29:32.220952デフォルトの名無しさん
2012/09/09(日) 19:33:35.910953デフォルトの名無しさん
2012/09/10(月) 00:42:00.080954デフォルトの名無しさん
2012/09/10(月) 06:26:11.340955デフォルトの名無しさん
2012/09/10(月) 19:12:59.36チュートリアル
http://international-lisp-conference.org/2012/tutorials.html
登録料(事前登録 1日20,000円 通し40,000円)
http://international-lisp-conference.org/2012/registration.html
全体スケジュール
http://international-lisp-conference.org/2012/schedule.html
0956デフォルトの名無しさん
2012/09/13(木) 23:05:15.670957デフォルトの名無しさん
2012/09/13(木) 23:44:07.130958デフォルトの名無しさん
2012/09/14(金) 11:22:16.610959デフォルトの名無しさん
2012/09/14(金) 17:39:56.61ガ━━ΣΣ(゚Д゚;)━━ン!!
0960デフォルトの名無しさん
2012/09/14(金) 19:05:22.19ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
0961デフォルトの名無しさん
2012/09/14(金) 21:03:08.16こんなの気にしても仕方ない。
言語処理系くらい書ける人間対象じゃないと。
0962デフォルトの名無しさん
2012/09/14(金) 21:30:39.27どこかで必要とされてるんでしょうか?
0963デフォルトの名無しさん
2012/09/14(金) 21:43:50.180964デフォルトの名無しさん
2012/09/14(金) 21:49:29.700965デフォルトの名無しさん
2012/09/14(金) 22:06:03.790966デフォルトの名無しさん
2012/09/14(金) 22:14:40.95人の必要を満たしちゃダメでしょ
こっそり自分用の言語処理系書くことで、同僚の10倍の生産量と10倍の遊び時間を保持してるんだから
0968デフォルトの名無しさん
2012/09/14(金) 22:42:10.21大学関係は嫌でも先輩の遺産のLISPを使わされるから
0969デフォルトの名無しさん
2012/09/14(金) 22:50:27.910970デフォルトの名無しさん
2012/09/15(土) 09:39:26.11FORTRAN 「ですよねー」
0971デフォルトの名無しさん
2012/09/15(土) 10:38:45.99どっちがよく使われてるだろ
0972デフォルトの名無しさん
2012/09/15(土) 11:43:33.450973デフォルトの名無しさん
2012/09/15(土) 14:36:51.63大学で、LISP系のプログラムがなぜかPythonに置き換わりつつある
本屋に統計やWebアプリのPython本が並んでるからバカ学生が使ってる
LISPも記号処理以外にも数値計算とかの応用本を出すべき
0974はちみつ餃子 ◆8X2XSCHEME
2012/09/15(土) 15:06:47.18コンピューターグラフィックにかなり活用されてた時期もあるので、
数値計算のノウハウだってあるはずだよな。
0975デフォルトの名無しさん
2012/09/15(土) 15:11:00.030976デフォルトの名無しさん
2012/09/15(土) 18:47:05.11__∠_ / __∠_ / / ̄| / / |
/ /⌒ヽ / /⌒ヽ /l / |
( | ( | / / l /\ | /
\__ _ノ \__ _ノ / \ / \ |_/
__|__ __ l __|__ l ヽ ヽ
| |  ̄ ̄ / -┼─ | | l
| | / | ─- ├─┐  ̄| ̄ヽ |
| | | | / | | │
─┴ー┴─ ヽ_ | ヽ__ / ヽ/ | ヽl
l l | ┌─┬─┐ ─--
| ヽ | ヽ | _. ├─┼─┤ __
| l | l / ̄ └─┴─┘  ̄ ヽ
| | | | ( , l ヽ |
し し ヽ__ / ヽ___,ヽ _ノ
0977デフォルトの名無しさん
2012/09/17(月) 08:15:16.36書籍がそろっちゃったんだよな。入門者はまずはそれをやれば間違いない。
次スレ立てるなら、テンプレに参考文献として入れてとくべきじゃね?
0978デフォルトの名無しさん
2012/09/17(月) 08:22:29.270979デフォルトの名無しさん
2012/09/17(月) 12:22:32.30>大学で、LISP系のプログラムがなぜかPythonに置き換わりつつある
結局LISPだとアルゴリズムとか本質的なところを学ぶ前に慣れること多すぎで
LISP知識がかえってノイズになっちゃうんだよ。
再帰やリスト操作、高階関数とかもRubyやPythonで自由に使えるしね今は。
0980デフォルトの名無しさん
2012/09/17(月) 14:40:08.18教科書は Little Schemer で。
0981デフォルトの名無しさん
2012/09/17(月) 15:44:42.410982デフォルトの名無しさん
2012/09/17(月) 16:48:21.170983デフォルトの名無しさん
2012/09/18(火) 02:59:06.55初学だったらLispの方が覚えること少ないだろうに。
ここまで言語の文法が簡単な言語ってLispとForth位しかないと思うが?
0984デフォルトの名無しさん
2012/09/18(火) 03:11:46.690985デフォルトの名無しさん
2012/09/18(火) 03:23:40.41人間には10進数の方が扱いやすい。
同様にPythonよりLispのほうが文法が簡単でも
人間にはPythonの方が扱いやすい。
0986デフォルトの名無しさん
2012/09/18(火) 13:36:23.450987デフォルトの名無しさん
2012/09/18(火) 14:16:24.40その理屈でSchemeを推奨してたことがあったけど、結局、大学では記号処理以外では普及しなかった
0988デフォルトの名無しさん
2012/09/18(火) 15:15:09.59数値計算とつながらないの不思議
0989デフォルトの名無しさん
2012/09/18(火) 15:55:11.620990デフォルトの名無しさん
2012/09/18(火) 16:06:54.89周りにmaxima使ってる人いっぱいいるよ。
モデリングした後の、数式処理→数値計算に。
0991デフォルトの名無しさん
2012/09/19(水) 00:39:44.640992デフォルトの名無しさん
2012/09/19(水) 01:09:41.76>初学だったらLispの方が覚えること少ないだろうに。
>ここまで言語の文法が簡単な言語ってLispとForth位しかないと思うが?
碁の方が覚えることは少ないが、将棋の方がすぐ面白さがわかる
LISPは碁、Rubyなんかは将棋
0993デフォルトの名無しさん
2012/09/19(水) 01:10:40.390994デフォルトの名無しさん
2012/09/19(水) 01:20:47.39Lispで数式処理はわかるけど数値演算系ってNativeに落とし込める場合CommonLispでコンパイル時型指定バリバリとかじゃないと速度だしにくくない?
今時のマシンだったらきにしないのかもしらんけど。
0995デフォルトの名無しさん
2012/09/19(水) 01:26:49.35他の言語のソース吐ける。
0996デフォルトの名無しさん
2012/09/19(水) 02:27:35.11その本、前半の数学部分飛ばして読める?
0997デフォルトの名無しさん
2012/09/19(水) 06:49:38.84僕ら人間が一歩だけコンピュータに歩み寄れば、世界はよりよくなる、そうは思えないかい?それがS式だ。
0998デフォルトの名無しさん
2012/09/19(水) 06:51:23.340999デフォルトの名無しさん
2012/09/19(水) 07:04:20.331000デフォルトの名無しさん
2012/09/19(水) 07:24:21.92ますは10進数の代わりに2進数使うとこから始めようか
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。