1 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:13] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/tech/kako/1058/10582/1058263391.html Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ 関連リンクは>>2-10 あたり
930 名前:デフォルトの名無しさん [04/11/03 16:41:01] 「計算機プログラムの構造と解釈」(和訳版)を読んでいるのですが、 1.2.4 べき乗の説明で、fast-exptの増加の程度は(p25の注釈37によると) 「2を底とするnの対数に、nの2進表現での1の数を足して1を引いたもの」 と説明があります。 この説明中の 『nの2進表現での1の数』 とはどのような数なのでしょうか?
931 名前:デフォルトの名無しさん mailto:sage [04/11/03 16:46:36] 1 less than the log base 2 of n plus the number of ones in the binary representation of n.
932 名前:デフォルトの名無しさん mailto:sage [04/11/03 16:51:49] >>914 とりあえずevaluate作ってみたよん。 手元にLispがないからSchemeになってまふ。 オペランドは2つに固定ね(美しくないけど解りやすいから) (define *operator* `((+ . ,+) (- . ,-) (* . ,*) (expt . ,expt))) (define evaluate-1 (lambda (op opr1 opr2 a b) (apply (cdr (assoc op *operator*)) (list (cond ((eq? opr1 'x) a) ((eq? opr1 'y) b) (else opr1)) (cond ((eq? opr2 'x) a) ((eq? opr2 'y) b) (else opr2)))))) (define evaluate (lambda (expression a b) (let ((op (car expression)) (opr1 (cadr expression)) (opr2 (caddr expression))) (evaluate-1 op (if (pair? opr1) (evaluate opr1 a b) opr1) (if (pair? opr2) (evaluate opr2 a b) opr2) a b)))) ; (evaluate '(+ 4.1 (- y (* x 2.1))) 2.3 3.3) -> 2.5699999999999994
933 名前:デフォルトの名無しさん mailto:sage [04/11/03 16:58:56] >>930 ビットが立っている数だろ? 100101(2) ⇒ 3
934 名前:デフォルトの名無しさん mailto:sage [04/11/03 17:46:27] 残りのmutateだよん (define mutate-operator (lambda () (let ((r (random 100))) (cond ((< r 30) '+) ((< r 60) '-) ((< r 90) '*) (else 'expt))))) (define mutate-operand (lambda (operand) (let ((r1 (random 100)) (r2 (random 100))) (cond ((or (< r1 60) (null? operand)) (cond ((< r2 20) 'x) ((< r2 40) 'y) (else (random 1.0)))) (else (list (mutate-operator) operand (mutate-operand '())))))))
935 名前:934 mailto:sage [04/11/03 17:47:01] (define mutate (lambda (expression) (let ((op (car expression)) (opr1 (cadr expression)) (opr2 (caddr expression)) (r (random 100))) (cond ((< r 20) (list (mutate-operator) (if (pair? opr1) (mutate opr1) opr1) (if (pair? opr2) (mutate opr2) opr2))) ((< r 60) (list op (if (pair? opr1) (mutate opr1) (mutate-operand opr1)) (if (pair? opr2) (mutate opr2) opr2))) (else (list op (if (pair? opr1) (mutate opr1) opr1) (if (pair? opr2) (mutate opr2) (mutate-operand opr2)))))))) ; (mutate (mutate (mutate (mutate '(* (+ x y) (- x y)) )))) --> (+ (* 0.8420 0.1857) (- (+ x x) 0.9704)) >20% the operator will colapse into an operand according to rule 1 これの意味は不明なのでいれてないよん。
936 名前:デフォルトの名無しさん mailto:sage [04/11/03 18:40:25] (list (mutate-operator) (if (pair? opr1) (mutate opr1) opr1) (if (pair? opr2) (mutate opr2) opr2))) とかって (list (mutate-operator) opr1 opr2)) にすると思ってた。
937 名前:デフォルトの名無しさん mailto:sage [04/11/03 21:10:25] >>930 ,931 原文はなんてことないのに日本語訳だとわかりにくいですねえ。
938 名前:デフォルトの名無しさん mailto:sage [04/11/04 05:18:57] みんなえらいな 助け合いってのが心に染みたよ
939 名前:デフォルトの名無しさん mailto:sage [04/11/04 12:24:08] >>935 >20% the operator will colapse into an operand according to rule 1 そのoperatorを含む式が一つのoperand(x,y,定数のどれか)になる ってのが対称的で美しい気がする。 operandがexpressionになるって規則もあるしね。
940 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/11/05 04:17:47] おはようございます. On Lispの邦訳がとりあえず第25章まで終りました.ご賞味下さい. っ [ ttp://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.pdf ] あとパッケージについてのappendixが残っているのと,全体的な訳の見直し,注の整備, 見栄えの向上,HTMLやtexinfoへの変換(←やるかどうか怪しい)ですかね... なお↑のサイトは私が来年4月に工学部に進学してまもなくすると (移行措置も何もなく)一夜にして移転しますんで,ミラー置いておきますね. っ [ ttp://www.komaba.utmc.or.jp/~flatline/onlisp_j.pdf ] まだ工学部生としての学生証番号が決まってないので, 移転先がどういうアドレスになるかはまだ不明です.
941 名前:デフォルトの名無しさん mailto:sage [04/11/05 04:22:09] >>940 すげーな。一人でやってるのか?これってどのぐらい時間かけてるの? 一日何分ぐらいやってる?
942 名前:デフォルトの名無しさん mailto:sage [04/11/05 04:34:13] flatlineさんおつかれ。よくやったね。 後で印刷して、ありがたく読ませてもらうよ。
943 名前:デフォルトの名無しさん mailto:sage [04/11/05 05:27:24] お疲れさまです。早速読んでみます。
944 名前:デフォルトの名無しさん mailto:'sage' [04/11/05 06:56:20] >>940 おつかれさま! texinfoホスイ
945 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/11/05 07:16:48] >>941 メインは私ですが様々な方からいただいた指摘を取り込んであります. かかった期間は2年弱. 数日にいっぺん,1,2時間ずつやってたかな? ;; 自分で本を書くのに比べれば微々たる労力,とも言えますが... >>942 Appendixがないのと,誤訳が残ってそうなのは覚悟しといてください. 紙にしちゃうと読みやすいけど更新に追随し辛いですよね. 今後はChangeLogでもつけようかな? あと,印刷するには余白が狭過ぎかもしれません... いずれ直します. >>943 どうもです.何か気付いたら教えてください.
946 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/11/05 07:21:03] >>944 モウチト待ッテ (´Д`;)
947 名前:デフォルトの名無しさん mailto:sage [04/11/05 07:22:26] >>flatline 乙!喜んで読ませてもらう!
948 名前:デフォルトの名無しさん mailto:sage [04/11/05 13:39:53] 恭一また臭いこといってんな
949 名前:デフォルトの名無しさん mailto:sage [04/11/05 13:40:55] ごめん誤爆した
950 名前:デフォルトの名無しさん mailto:sage [04/11/06 07:29:32] そういえばgaucheのMinGWへのポートは結局どうなったの?
951 名前:デフォルトの名無しさん mailto:sage [04/11/07 04:12:29] みなさんedってつかってますか? clispでedをディスアセンブルしてメモ帳以外のエディタを使おうと思ったのですが、うまくいかないですよ。
952 名前:ミミ mailto:sage [04/11/07 04:20:14] >>951 ディスアセンブル? EDITOR 環境変数を変更するか、*EDITOR* グローバル変数を変更すればいいと思うんだけど。
953 名前:デフォルトの名無しさん mailto:sage [04/11/07 10:14:15] Scheme入門(数学ネタ ttp://www.altum.jp/math/exp2a/ なかなか面白いので晒しage
954 名前:デフォルトの名無しさん mailto:sage [04/11/07 20:16:45] たぶん大学のサーバーに置いてあったころに見たな。
955 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:58:11] Gaucheでpsd使われてる方いますか?
956 名前:デフォルトの名無しさん mailto:sage [04/11/08 23:31:11] LisperはGUI組む必要があるときどうしてますか? CLIMはACLだと別売りみたいだし、LispWorksのドキュメント見るとobsolete扱いで CAPI使え、みたいなこと書いてあるんで何がデファクトなのかよ〜わからん。 ウェブアプリケーションにしちゃうもん?
957 名前:デフォルトの名無しさん mailto:sage [04/11/08 23:34:59] GUIイラネ
958 名前:デフォルトの名無しさん mailto:sage [04/11/08 23:42:19] ですね
959 名前:956 mailto:sage [04/11/08 23:55:59] GUIイラネ、で済めばいいんだけどさ(実際漏れもEmacsからほとんど外に出ないし)、 仕事でLisp使ってブツを作り上げておっさん連中にデモ・プレゼンするとき困らない? Emacsのバッファで作業してるの見せてもおっさんには説得力ないんだよね (でも予算の使い道の決定権を握ってるのは奴らだ)。 折角何の前例もないところにLispを使うという無茶を通して邪魔されないで済んでるので できれば余計な横槍を入れられないように防衛線を張っておきたいのでし。 個人で使って自己満足してるだけならこんなこと気にする必要もないんだけどね。
960 名前:デフォルトの名無しさん mailto:sage [04/11/09 00:36:08] >>959 >>15 なんていうのはあるけれど。
961 名前:デフォルトの名無しさん mailto:sage [04/11/09 01:00:53] ウェブアプリにできるような物ならウェブアプリでいいんじゃない?
962 名前:デフォルトの名無しさん mailto:sage [04/11/09 01:26:18] >>952 *editor*変えたらうまくいきました。今まで何やってたんだ俺… GUIかどうかは微妙だが、xyzzyでヒルベルト曲線を書くデモを見たときはちょっとビビった。
963 名前:デフォルトの名無しさん mailto:sage [04/11/09 02:07:40] >>956 WWWアプリが一番楽なアプローチだけど それができなきゃ自分でGUIライブラリのbindingsを書くしか。
964 名前:956 mailto:sage [04/11/09 02:16:38] やはりウェブアプリに落ち着いちゃいますか。もしくはFFIで外界と接続する、と。 そのわりには307にレスつけてる人が少ないのを見ると、Lisperは必要なモノは自分で 自作しちゃうのかなぁ、やっぱり。
965 名前:デフォルトの名無しさん mailto:sage [04/11/09 03:04:01] >>956-964 つまりLispはVisualBasicやVisualC++のかわりにはなりえないっていう結論になるの?
966 名前:デフォルトの名無しさん mailto:sage [04/11/09 03:17:04] ∩___∩ ? | ノ\ ヽ | / ●゛ ● | ? | | ∪ ( _●_) ミ j 彡、 |∪| | / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
967 名前:デフォルトの名無しさん mailto:sage [04/11/09 03:20:16] >>964 自作しちゃうので世に出てこなくてコミュニティが発展しないってのは Lisperたちの問題としてよくでてくるよね。 >>965 (よくいる)Lisperのそういう作り込みを基本的に必要としてないってことかなぁ。 でも、垣根を下げるためには、そういう作り込みって重要よね。
968 名前:デフォルトの名無しさん mailto:sage [04/11/09 07:37:35] 動きが必要なら比較的良く使うのは OpenGL バインディングかなぁ… ショボくていいなら Tk インターフェースを良く使う.でも最近だと Web で DHTML つかうのがお手軽かもしれん. プレゼン資料ならデータを他のツールで可視化(GNU Plot とか GraphViz とか) よくやるなぁ.
969 名前:デフォルトの名無しさん mailto:sage [04/11/09 09:36:00] >>967 逆だよ。 ブラックボックスはダメ。
970 名前:デフォルトの名無しさん mailto:sage [04/11/09 14:57:42] 仕様が公開されてればブラックボックスだろうが別にかまわないが
971 名前:デフォルトの名無しさん mailto:sage [04/11/09 21:44:48] 出来が良けりゃブラックボックスで良い 糞コードしか書けない奴はブラックボックスじゃなくてもいいけどな
972 名前:デフォルトの名無しさん mailto:sage [04/11/10 00:27:55] Dr.Schemeはいかがでしょう?
973 名前:デフォルトの名無しさん mailto:sage [04/11/10 22:22:02] なんかハリボテ感が強い>Dr もうちょっとスマートにまとまらないのかな GUIも独自とかじゃなくてScheme/tkとかwxSchemeとか
974 名前:デフォルトの名無しさん mailto:sage [04/11/11 02:23:40] widestudioなんかは既にたくさんのOSと言語に対応している状態なんだから、 比較的楽にlispにも対応できる柔軟性を持ってそうに思えるんだけど、どうなんですかねぇ?
975 名前:デフォルトの名無しさん mailto:sage [04/11/11 09:38:49] シェルスクリプトで書かれたLISPインタプリタとかってありますか?
976 名前:デフォルトの名無しさん [04/11/11 11:19:58] >>975 シェルは分かりませんが、awk ならあります。 awklisp っってヤツね。 >>7 を見てね。
977 名前:デフォルトの名無しさん mailto:sage [04/11/11 12:02:28] >>976 あ、これなかなか面白いです。どうもです。
978 名前:デフォルトの名無しさん mailto:sage [04/11/11 12:35:13] ECLってどうですか? 使ってる人いますか?
979 名前:デフォルトの名無しさん mailto:sage [04/11/12 02:17:34] scheme処理系では一般的に日本語(というかSHIFT-JIS)の扱いってどうしているんでしょうか。 SRFIで定義しているようなやつはCとかで書くのか、 それとも他のASCIIを扱う関数から定義しているものなのか…。 実際にSJIS使ったサンプルとかもあれば…。SRFIでは良くわかりませんでした。 今勉強がてらに使ってるやつでは例えば(string-ref "あかさたな" 0)とかするとエラー終了したりしてます。 ここで"あ"って返して欲しいんですが。
980 名前:デフォルトの名無しさん mailto:sage [04/11/12 07:36:43] comp.lang.schemeよりコピペ。Scheme処理系のunicodeサポート。 1) Gauche: unarguably best Unicode support, including native read/write syntax for strings, chars, regexps & char-sets; support for SRFI-13 & SRFI-14; charconv libraries and extensions to I/O procedures to specify encoding for ports, including auto-detection of Japanese encodings. 2) PLT >= v299: native Unicode support; regexps and SRFI-13 are Unicode-aware, SRFI-14 is not; port encodings assumed UTF-8. 3) Gambit: native Unicode support, no regexp or SRFI support, encoding for files and terminal is fixed at startup time and limited to Latin-1 or common Unicode encodings (UCS-2, UCS-4 or UTF-8). 4) SISC/Kawa/Jscheme: leverages Java Unicode support; SISC has Unicode aware SRFI-13, Unicode unaware SRFI-14, the others have neither; encoding is determined by default by locale, but SISC and Kawa provide port encoding procedures; Java uses UTF-16 internally which may cause complications with surrogate pairs.
981 名前:デフォルトの名無しさん mailto:sage [04/11/12 07:37:26] 7) Chicken: characters are allowed within the full 21-bit Unicode range, however by default the non-ASCII characters have no read/write syntax. I have a unit almost ready for release that leverages this and assumes UTF-8 encoded strings/ports to provide full Unicode support, including regexps, SRFI-13 and SRFI-14. Chicken has an iconv interface, and I also have a unit with a more friendly interface such as (with-input-from-encoded-file enc file thunk). 8) MIT-Scheme: Unicode chars strings are disjoint types; 'alphabet' type as Unicode-char alternative to char-sets; Unicode string ports; no port encoding utilities. 9) Bigloo: Unicode strings and characters are disjoint types; no port encoding utilities. 10) Chez/Elk/Guile/Inlab-Scheme/Rscheme/SCM/Stalin/Stklos: nothing.
982 名前:デフォルトの名無しさん mailto:sage [04/11/12 10:28:15] どなたかそろそろ、次スレを立てていただけないでしょうか?
983 名前:デフォルトの名無しさん mailto:sage [04/11/12 12:16:45] 次スレ pc5.2ch.net/test/read.cgi/tech/1100229366/l50
984 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:18:09] >>7 にあるawklispに含まれていたperlispですが、 これはPerl4での動作することを想定して書かれていました。 なのでリファレンスやレキシカルスコープ変数はまったく使われておらず、 コードも煩雑なものとなっています。 Perl5でLISPインタプリタを実装した例などはありますか? 自分で勉強して書けと言われそうですが・・・
985 名前:デフォルトの名無しさん [04/11/12 17:46:04] >>984 こっちのほうが分かりやすいかも。awk と sh で書いてあります。参考までに。 www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/awk/
986 名前:ミミ mailto:sage [04/11/12 20:01:50] >>973 DrScheme の GUI (MrEd) は wxWidgets の初期のバージョンから 派生したものらしいよ。
987 名前:本田 [04/11/13 00:12:16] >>956 >Lisp-Tk www.cliki.net/Lisp-Tk >ウェブアプリケーションにしちゃうもん? >CL-HTTP www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html 流行としてはGUIよりアプリケーションサーバーだと思う。
988 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:19:04] >>980-981 どうもありがとうございます。 やはり多国語を扱えるような処理系はネイティブでサポートしているのが多いんですね。 処理系のソースは持っているので自分でなんとかしてみます。
989 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:20:16] LISPでWEBサービスってできるの?
990 名前:本田 [04/11/13 00:38:31] >>989 >db-sockets www.cliki.net/db-sockets こんなの使えば、HTTPも処理できるプログラム書けるはず。
991 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:41:49] >>990 そうなんだ。ありがとう^^
992 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:59:44] >>989 kahuaとか
993 名前:デフォルトの名無しさん mailto:sage [04/11/13 12:22:54] WebサービスってGoogleみたいにSOAPとか使うやつのことだろ
994 名前:デフォルトの名無しさん mailto:sage [04/11/13 12:37:41] >>993 そういう規格もありますねー にゃんにゃん