トップページtech
1001コメント272KB

((Common Lisp) (Scheme) :Part 15)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/06/23(金) 10:22:53
過去スレ
Part14: http://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: http://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: http://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: http://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: http://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: http://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: http://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: http://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: http://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: http://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: http://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: http://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: http://piza2.2ch.net/tech/kako/987/987169286.html
0002デフォルトの名無しさん2006/06/23(金) 10:24:33
□参考リンク□

日本Lispユーザ会(日本語)
ttp://jp.franz.com/jlug/index.html
ここにかなりの情報があります。
ttp://jp.franz.com/
削るとAllegro Common Lispのページへ

プログラミング言語Scheme(日本語)
ttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html
Schemeの人はまずここを見ましょう。

Lisper への道(日本語)
ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/rakup.html
判りやすいLISP入門サイト。

Schemeへの道(日本語)
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html
ここはschemeの入門サイト。
0003デフォルトの名無しさん2006/06/23(金) 10:25:58
慶応の授業のページ・記号処理プログラミング 2001
ttp://buri.sfc.keio.ac.jp/lisp/menu.html

Practical Scheme(日本語)
ttp://practical-scheme.net/index-j.html
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)

Scheme Hash(英語)
ttp://okmij.org/ftp/Scheme/index.html
S式でXMLを使える様にするSXMLなど

John McCarthy's Home Page
ttp://www-formal.stanford.edu/jmc/
LISPの生みの親、J・マッカーシーのページだそうです。

Association of Lisp Users
ttp://www.alu.org/alu/home
米国のLispユーザ会
0004デフォルトの名無しさん2006/06/23(金) 10:27:53
□SICP関係□

SICP(英語)
ttp://mitpress.mit.edu/sicp/full-text/book/book.html
「計算機プログラムの構造と解釈」の原書です。
全てオンラインで読めます。

計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
ttp://www.ipl.t.u-tokyo.ac.jp/sicp/

SICPの回答集
ttp://www.melt.kyutech.ac.jp/~gogogo/sicp_ex/
ttp://pluto.aurorasd.co.jp/~mkama/sicp/
ttp://www.ipl.t.u-tokyo.ac.jp/sicp/solution.root.html
ttp://www.sampou.org/scheme/sicp/answer/
0005デフォルトの名無しさん2006/06/23(金) 10:29:33
□その他□

Schemeで書かれた正規表現ライブラリ
ttp://www.cs.rice.edu/~dorai/pregexp/pregexp.html

幻の「入門Scheme」
ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html
オンラインで読める

各種scheme処理系をcygwin上からビルドする方法など。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/

Bit - Implantation compacte de Scheme
ttp://www.iro.umontreal.ca/~dube/
mini-schemeよりも小さい(?)bytecode変換系

Lisp 言語処理系: CAMPUS LIsP, Lemon version
ttp://aten.aial.hiroshima-u.ac.jp/~kakugawa/clisp/index-ja.shtml
Cコードによるわずか1000行の実装

Cliki
ttp://www.cliki.net/index
CommonLispのプログラムがたくさん紹介されているのでここを当たるべし。
0006デフォルトの名無しさん2006/06/23(金) 10:30:46
encyCMUCLopedia
ttp://www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/
cmucl以外でも有益なはず

CMUのLisp Repository
ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/0.html
新旧様々なプログラムが置いてある

Tiny CLOS Tutorial
ttp://home.adelphi.edu/~sbloch/class/272/tclos/tutorial.shtml

Schemix
ttp://www.abstractnonsense.com/schemix/
Linuxのkernelへのパッチで、/dev/として扱えるTinyScheme

Bibliography of Scheme-related Research
ttp://library.readscheme.org/
Scheme関連の論文リンク集
0007デフォルトの名無しさん2006/06/23(金) 10:46:55
その他よさそうなリンク

awkで書かれたわずか500行のLispインタプリタ
awklispを読めばLispが理解できる
ttp://www.accesscom.com/~darius/

Emacs Lisp 2
ttp://pc2.2ch.net/test/read.cgi/tech/1068467385/

* Hotdog Scheme ttp://rover.cs.nwu.edu/~scheme/
 MS が金出してたみたい
* Bigloo ttp://www-sop.inria.fr/mimosa/fp/Bigloo/
 CLR 用のコードを吐けるようになったらしい

継続

なんでも継続
ttp://practical-scheme.net/docs/cont-j.html
Schemeへの道:継続
ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html
継続の使い方
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation
継続の使用法
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html
CPS(継続渡しスタイル)の説明
ttp://www.csl.sony.co.jp/person/masui/Forum/data/20011215023622/
Kahua: 継続ベースのアプリケーションサーバー
ttp://www.kahua.org/
0008デフォルトの名無しさん2006/06/23(金) 10:50:50
仕様関係)
CLtL2: Common Lisp the Language 2nd edition
ttp://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
CLHS: Common Lisp Hyper Spec
ttp://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html
R5RS: Revised(5) Scheme(ja)
ttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html

便利な情報リソース)
The Common Lisp Cookbook: いわゆる Cookbook
ttp://cl-cookbook.sourceforge.net/

小さい実装)
SECDR-Scheme: SECD machine model に基づく実装
ttp://lily.fan.gr.jp/~kmd/adhoc/view.rhtml?n=SECDR-Scheme_woyomu
Minischeme: 1 ファイルに凝縮された Scheme 処理系
ttp://tinyscheme.sourceforge.net/minischeme.tar.gz
TinyScheme: Minischeme を色々弄ったもの
ttp://tinyscheme.sourceforge.net/
KI-Scheme, AM-Scheme, etc...
ttp://www.nifty.com/download/dos/prog/lisp/
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
ttp://www.lispme.de/lispme/
0009デフォルトの名無しさん2006/06/23(金) 10:55:26
LISP Scheme Part9 (html化)
ttp://ruku.qp.tc/dat2ch/0403/01/1069594582.html

独習 Scheme 三週間
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html
Schemeの教科書

よろずや
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/
lispの実用的な情報が色々。

Common-Lisp.net: 多くのプロジェクトがホスティングされてる
ttp://common-lisp.net/

Bill Clementson's Blog: Lisp関連の話題が中心のBlog
ttp://home.comcast.net/~bc19191/blog/

Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
ttp://www.gigamonkeys.com/book/
0010デフォルトの名無しさん2006/06/23(金) 10:57:43
テンプレ、以上です。
0011デフォルトの名無しさん2006/06/23(金) 19:51:31
ォッ
0012デフォルトの名無しさん2006/06/24(土) 02:33:35
イカすスレタイ乙
0013デフォルトの名無しさん2006/06/24(土) 13:26:20
0014デフォルトの名無しさん2006/06/24(土) 20:48:38
(乙)
0015デフォルトの名無しさん2006/06/24(土) 22:19:08
(defun 乙 ()
(message *乙*))
0016デフォルトの名無しさん2006/06/24(土) 22:25:39
(define exit-k '())
(call-with-current-continuation (lambda (k) (set! exit-k k)))

(define 乙
(lambda ()
(k (lambda () (display "乙!") (newline)))))
0017デフォルトの名無しさん2006/06/24(土) 22:48:15
>>16
まわりくどい人キタ!
0018デフォルトの名無しさん2006/06/24(土) 22:51:26
>>14がすべて悪いw
0019デフォルトの名無しさん2006/06/25(日) 05:24:15
>>16 が継続渡しに失敗している件について。
0020デフォルトの名無しさん2006/06/25(日) 11:09:06
(begin
(display (call/cc (lambda (c)
(set! exit-k c)
">>1")))
(newline))
(exit-k "乙!")

こうですか!わかりません!
0021デフォルトの名無しさん2006/06/25(日) 23:02:51
トップレベルまたいじゃだめだろ
0022デフォルトの名無しさん2006/06/26(月) 23:37:09
箱の中に手を入れたり、放り込む感じはないけど、car、cdr、
cons は、まだ逐次的にしている感が否めない。
(集合の定義でいいんじゃ……。)

あらゆる問題に対処する慣れの時間を削減する言語の進化!
0023デフォルトの名無しさん2006/06/27(火) 00:08:10
>>22
とりあえずそれはLispじゃないので、勝手に俺言語でも作ってやってください
0024デフォルトの名無しさん2006/06/27(火) 17:13:43
最近Gaucheをいじり始めて、とりあえず独習Scheme3週間を流し読みしたxyzzy使いなんだが、
初心者がいじって遊べるSchemeのプログラムって何がある?

今はWiLiKiのソースを読んでみてるんだが、ちょっと量が多すぎる気がする。
0025デフォルトの名無しさん2006/06/27(火) 18:44:56
漏れはWiLiKiにマクロを追加してみたりして遊んだ。
メモできるカレンダーとか。
0026デフォルトの名無しさん2006/06/27(火) 18:45:27
>>24
どこに埋もれたか忘れたが、大学院時代、ゼミの課題で、自分で自分を実行できる
Schemeのサブセットを作ったことあるなぁ。徹底的に文法を削って、200行未満に
収めてしまった。

(define my-scheme
(lambda ()
(eval (read))
(my-scheme) ))

(my-scheme)

ではないよ。ちゃんと環境も作った。プリミティブとクロージャは、大元のやつを
使ってさぼったけど。課題として面白いと思うんだけど、どうかなぁ。
0027242006/06/27(火) 19:12:50
書き込んだ後でScheme Topicsを見つけて、
「あーこの中で簡単なのから読めばいいかな」とか思ってました。
http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme

これ読みながらWiLiKiを弄ってみることにします。
>>26のお題は悟りを開いてから考えます。
0028デフォルトの名無しさん2006/06/27(火) 22:42:13
Scheme のサブセットってどこら辺まで許されるかな。
遅延評価は削っても良さそうだけど、継続はダメかな。
0029デフォルトの名無しさん2006/06/27(火) 23:08:19
>>28
R5RSなんて小さい規格なんだから、一つでも削るならSchemeと呼んで欲しくない。
あれ以上削ったらただの「俺言語」だ。
0030デフォルトの名無しさん2006/06/27(火) 23:16:12
>>29
Sussman と Steele の言語が Scheme じゃないとでも?
R^nRS 名乗らないなら
* レキシカルスコープ
* 末尾呼び出しの最適化
* 変数と関数が同じ名前空間
くらいでいいんじゃない?
0031デフォルトの名無しさん2006/06/27(火) 23:18:06
>>30
それは単なる 1-Lisp の一種だろ
0032デフォルトの名無しさん2006/06/28(水) 01:06:29
>29
「scheme のサブセット」なんであって scheme だとは書いてないでしょ。まぁ
でも継続はあってほしいかも。
0033デフォルトの名無しさん2006/06/28(水) 01:13:46
>>32
それを言ったらどんな言語だってSchemeのサブセットのスーパーセットだよw
個人的には継続のない言語をSchemeと呼ぶのは大きな違和感がある
0034デフォルトの名無しさん2006/06/28(水) 06:02:20
numeric tower とかマクロとか
0035デフォルトの名無しさん2006/06/28(水) 06:04:37
(E E*)の形で関数適用が書けて、レキシカルスコープならschemeでいいや。
0036デフォルトの名無しさん2006/06/28(水) 07:41:59
新しいの出てるね

http://www.schemers.org/Documents/Standards/Charter/status-jun-2006/status-jun06.html

top-level が library になったり、call/cc や when, unless がデフォルトになったり...
UNICODE サポートはどうなるんでしょうね
0037デフォルトの名無しさん2006/06/28(水) 07:43:32
R1RSってどんだけちっちゃかったの?
0038デフォルトの名無しさん2006/06/28(水) 08:45:45
square brackets([])はなくならないんだろうなあ……なんかやだ。
0039デフォルトの名無しさん2006/06/28(水) 10:26:21
R6RS> All definitions and expressions must appear within a library form; R6RS has no notion of a top-level definition or expression.
ま、中途半端よりはいいかもしれんが.... 微妙だ。 
0040デフォルトの名無しさん2006/06/28(水) 17:06:50
>>38
同意
0041デフォルトの名無しさん2006/06/28(水) 18:52:20
common-lisp.net 死んだ?
0042デフォルトの名無しさん2006/06/28(水) 20:28:29
square bracketsって誰の趣味?
なんでR6RSにこれが入るの決定なのか知ってる?
0043デフォルトの名無しさん2006/06/28(水) 21:05:38
その議論は2年前に終ってる。なぜお前はその時ちゃんと反対しなかったんだ?
0044デフォルトの名無しさん2006/06/28(水) 21:08:10
>>43
ポインタキボンヌ
0045デフォルトの名無しさん2006/06/28(水) 21:57:58
web上にいいのがないが、とりあえず去年の3月には投票済み。
http://www.schemers.org/Documents/Standards/Charter/mar-2005.txt
> We have voted on a number of the decisions listed in the Revised R6RS
> Status Report. Among the minor but visible decisions made are:
> :
> - add balanced square brackets as a synonym for parentheses
0046デフォルトの名無しさん2006/06/28(水) 23:11:46
>>39
これ良く分からなかったんだけど、全部 (library <lib-path> <language> <body>) で
書くようにしたいって事だよね。今までみたいに REPL から自由に式を入力出来る形ではなく。
で、(library "main" ...) が entry point になると...
0047デフォルトの名無しさん2006/06/28(水) 23:59:25
失礼します。
Windows2000にDrScheme(version350)を入れて日本語の設定をしたのですが、
ボタンや本文の文字がうまく表示できません。
このようになります↓
http://www.42ch.net/UploaderSmall/source/1151505302.jpg
(定義欄に入力しているのは、(string-length "ほげ")です)
メニューの編集-環境設定-フォントでフォントをMSゴシックにしています。
その他は色の設定しか変更していません。
Windowsのフォントキャッシュを作り直してみましたが改善しませんでした。

原因や解決法に思い当たる事があればお教え願います。
0048デフォルトの名無しさん2006/06/29(木) 02:51:24
言語を英語にして縦書きの日本語フォントを使うw
0049デフォルトの名無しさん2006/06/29(木) 07:37:18
フォントじゃなくて文字コードの設定のような気がする
何かが「Latin-1」か「ASCII」になってるんじゃないか?
0050デフォルトの名無しさん2006/06/29(木) 19:15:19
guile schemeでeval関数ってどうやって使うのでしょうか?

gauche schemeなら
(define environment #t)
(define initialenv '())
(set! environment (eval '(define a 2) initialenv))
って感じで使えるんだけど…
guileで同じようにやっても、evalの第二引数の型が違うってエラーになっちゃう。
0051472006/06/29(木) 22:04:01
ありがとうございます。解決法は見つかりませんでしたが、
・縦書きフォントなら表示できる
・中国語・朝鮮語フォントも表示できる(「々」が出ないものが多い)
・BDF UM+は大丈夫
のようなので、その範囲で使う事にします。

>>48
そうすることにします。
>>49
UnicodeフォントのはずのMSゴシックが使えないことに疑問が残りますが、
BDF UM+では表示できたのでそうではないようです。
0052デフォルトの名無しさん2006/06/30(金) 12:59:13
>>50 それは動く Gauche の方が変なのでは。R5RS 的には、eval の
第二引数は、(interaction-environment), (scheme-report-environment 5),
(null-environment 5) のいずれかでなければならない。

なさりたいことを拝察するに、こういうことかと。最初の行をとれば、Gauche
でも動くはず。

(use-modules (ice-9 r5rs)) ;; R5RS をguile で使えるようにする。
(define env (null-environment 5))
(eval '(define a 2) env)
(eval 'a env)
0053502006/06/30(金) 13:27:21
>>52
おーできた、ありがとう!
0054デフォルトの名無しさん2006/07/02(日) 16:26:34
携帯(例えばiアプリ)上で使えるSchemeってないのかな?
0055デフォルトの名無しさん2006/07/02(日) 17:12:21
携帯単体ではさすがにキツイべ
逆立ちしてもメモリが足りねえよ
0056デフォルトの名無しさん2006/07/02(日) 18:55:59
>>55
heapとして扱えるメモリは意外とあるんだよ、ないのは実行コードエリアとしての容量なんだよね。
だが所詮iAppli
0057デフォルトの名無しさん2006/07/02(日) 19:03:06
そうか〜。やっぱし携帯ではきついものがあるのか。
0058デフォルトの名無しさん2006/07/02(日) 19:38:30
コードをネット上から読み込んで動作するようにすればどうだ?
携帯Javaでそんなことが出来るか知らんけど。
そしてそこまでするならCGIとかでもいいかもしれんが。
0059デフォルトの名無しさん2006/07/02(日) 19:43:36
携帯の上でSchemeインタプリタを動かすかどうか別にして、そういう制限環境向けの
プログラムジェネレータをLisp系の言語で書くという発想は面白いかもしれない。
0060デフォルトの名無しさん2006/07/03(月) 12:20:49
http://www.okisoft.co.jp/esc/whitepaper.html
0061デフォルトの名無しさん2006/07/03(月) 15:28:51
(display '(a b "cd\n"))
ってやると
(a b cd
)
って表示されちゃうんだけど、
本当は
(a b "cd\n")
というふうに元の形のまま出力させたい。
どうしたらいいんでしょうか?
自分で元の形のまま出力する関数を定義するしかない?
それともschemeにそういう関数がもとから備わってる?

(write '(a b "cd\n"))
でも出力は
(a b "cd
")
で\nが改行に変わってしまってだめだった。

0062デフォルトの名無しさん2006/07/03(月) 15:49:06
\\
0063デフォルトの名無しさん2006/07/03(月) 19:54:55
\\
じゃだめで、
エスケープしなくてもそのままの形でS式の中のstringを表示させたいんだけど。
0064デフォルトの名無しさん2006/07/03(月) 20:01:50
goshでwriteだと\nて出た
0065デフォルトの名無しさん2006/07/03(月) 20:02:08
'(a b "cd\n")
ならばそのまま
(a b "cd\n")
と。
'(a b "cd\\n")
ならばそのまま
(a b "cd\\n")
と表示させたいんです。説明足らずですみません。
0066デフォルトの名無しさん2006/07/03(月) 20:06:56
>>64
goshだと確かに\nって出ますね・・・
でもguileだとダメだ・・・
処理系依存なのか・・・
guile用には自分で定義するしかないかなぁ。
0067デフォルトの名無しさん2006/07/03(月) 20:09:36
writeはreadできるように書き出せば良いので、どちらの処理系も間違いではないのだろうな
0068デフォルトの名無しさん2006/07/03(月) 22:39:49
guile だと \n は read した時点で改行になってるっぽい。
write の代替書くとかいう方法じゃ解決できなそうだね。

(string-length "\n")
=> 1

(equal? "\n" "
")
=> #t
0069デフォルトの名無しさん2006/07/03(月) 22:49:25
readした時点で改行文字になるのは当然。
問題はwriteが文字列中の改行文字をどう出力するかだよ。
0070デフォルトの名無しさん2006/07/03(月) 23:05:06
つまり、どうやっても「元の形のまま」出力することはできないってことでいいのかな。
改行と \n が区別できないってことは、両方含む文字列はどっちかが変換されちゃう。
0071デフォルトの名無しさん2006/07/03(月) 23:09:31
>>70
致命的な勘違いをしてないか?
0072デフォルトの名無しさん2006/07/04(火) 00:51:39
確かに何か勘違いしてるっぽいけど...

ASCII コードで 32 以下なら ¥ でエンコードし、
それ以外はそのまま表示するような display/write もどきを
自前で書き起こすというのはダメ?
0073デフォルトの名無しさん2006/07/04(火) 02:20:49
>>72
こんな質問をする奴にそれを進めても、自分が何やってるか理解できずに今度は
"ab
cd"

"ab\ncd"としか出力できません
という質問がされる悪寒。
0074612006/07/04(火) 03:53:56
改行を\nと出力する自前の関数を定義するっきゃなさそうですね。
今やろうとしてることでは
"ab
cd"
なんていう入力は想定しなくていいので問題ないです。
ありがとうございました。
0075デフォルトの名無しさん2006/07/06(木) 00:13:02
schemeで
関数のリストfuncsと、データのリストdatasがあって、
funcsのn番目を、datasのn番目に適用してくれる関数ってない?
再帰使ってちょこちょこっと書けばいいんだけど。
(define funcs '(func1 func2 func3))
(define datas '(a b c))
(hoge funcs datas)
=>((func1 a) (func2 b) (func3 c))
みたいになるやつ。
0076デフォルトの名無しさん2006/07/06(木) 00:50:54
map apply すりゃいいんじゃないの

ところで data は複数形だぞ。単数形は datum。
0077デフォルトの名無しさん2006/07/06(木) 00:59:41
datasわろす
0078デフォルトの名無しさん2006/07/06(木) 01:18:47
http://koders.com/?s=datas
0079デフォルトの名無しさん2006/07/06(木) 06:22:48
>>75
(zip funcs datas)
=> ((func1 a) (func2 b) (func3 c))
0080デフォルトの名無しさん2006/07/06(木) 07:25:35
例の戻り値が不適切っぽいのはともかく、適用したいってんだから、
(map (cut <> <>) funcs datas)
じゃないかな。
0081デフォルトの名無しさん2006/07/10(月) 17:44:09
(set! a '(0 1 2 3 4 5))

があるとして、配列 a の後ろから二番目の値、この場合は4を取り出す方法を教えてください

(car とか cdr とかわかんねー。どうやったら後ろから二番目の値を取れるのか・・・)
0082デフォルトの名無しさん2006/07/10(月) 17:47:34
(list-ref a (- (length a) 2))
0083デフォルトの名無しさん2006/07/10(月) 17:50:01
=> (list-ref a (- (length a) 2))
ERROR: unbound variable (errobj list-ref)
--

すまん、今使ってるのは script-fu uyq@
0084デフォルトの名無しさん2006/07/10(月) 17:58:46
(define (list-ref lis idx)
  (if (= idx 0) (car lis) (list-ref (cdr lis) (- idx 1))))
0085デフォルトの名無しさん2006/07/10(月) 17:58:47
(define list-ref
(lambda (ls position)
(if (= position 0)
(car ls)
(list-ref (cdr ls) (- position 1)))))

--

ググったら↑みたいのが出てきた。
これで script-fu でも list-ref が使えるらしい。

マンドクセからこれ使おうっと
0086デフォルトの名無しさん2006/07/11(火) 00:13:08
(cadr (reverse a))
0087デフォルトの名無しさん2006/07/11(火) 16:08:25
carやcdrは判っておいたほうがよい。
リストの構造を紙に書いて考えるんだ。
0088デフォルトの名無しさん2006/07/11(火) 17:19:13
ずいぶん前だけど、かなりemacs lisp関連のコードを
コントリビュートしてる人が、consセルって何?みたいな
話しててたまげた。

carとかcdrもS式で表現されたリストに対する操作として
理解してたらしい。

そういうのもありなんだとある意味感動した。
0089デフォルトの名無しさん2006/07/11(火) 17:47:49
caddrとかの言い回しは気にならなかったのかな
0090デフォルトの名無しさん2006/07/11(火) 17:55:22
>>88
そんな香具師のcontributeしたelispコードなんて使いたくねーな
0091デフォルトの名無しさん2006/07/11(火) 19:20:14
実際セル知らなくてもS式だけで完結しちゃうだろ。
0092デフォルトの名無しさん2006/07/11(火) 23:07:34
alist もリストのリストにするのか?
問題はないけど何か無駄な感じ
0093デフォルトの名無しさん2006/07/11(火) 23:30:01
alistはリストのリストにすること多いけどな。
92は後からデータが追加されるときにcdrをcadrにいちいち書き換えるのか?
0094デフォルトの名無しさん2006/07/11(火) 23:50:35
点対とかどうやって理解してるのか興味あるな
まぁアセンブラ書いたこと無い奴のCプログラムみたいなもんなんだろうな
0095デフォルトの名無しさん2006/07/12(水) 00:10:20
consを廃止すればドット対作れなくね?
listで良くね?
0096デフォルトの名無しさん2006/07/12(水) 00:12:14
先頭に1個付けたいときどうするの?
0097デフォルトの名無しさん2006/07/12(水) 00:21:35
リストの共有状態とかも理解してない悪寒
0098デフォルトの名無しさん2006/07/12(水) 00:49:28
>>93
cadrは何か半端で嫌いだ。
cdrだとビシッとした感じでカッコいいよ?
0099デフォルトの名無しさん2006/07/12(水) 01:31:09
>>95
R6RS 方面でそんな話題も出てるみたいね。
といってもさすがに cons 廃止じゃなくて、
cons の第二引数を list に限定しましょうって話だけれど。
↓の 5. Mutability of pairs の最後の段落参照。
http://www.schemers.org/Documents/Standards/Charter/status-jun-2006/status-jun06.html
0100デフォルトの名無しさん2006/07/12(水) 01:36:41
>>99
うへぇ
0101デフォルトの名無しさん2006/07/12(水) 21:07:41
SBCL 最新リリースで Solaris と Mac OS X もネイティブスレッド対応されたみたいだね。
Mac は experimental みたいだけど。

http://sbcl.sourceforge.net/news.html#0.9.14
■ このスレッドは過去ログ倉庫に格納されています