[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 19:46 / Filesize : 220 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Lisp Scheme Part17



1 名前:デフォルトの名無しさん [2007/04/20(金) 19:41:39 ]
Lisp全般のスレです

過去スレ
Part16: pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/

http://が多すぎるらしいので分割

820 名前:名無しさん@そうだ選挙に行こう [2007/07/29(日) 13:11:31 ]
・[1492] L2Lisp in Ruby((鈴))
 静的スコープ、末尾呼出し(末尾再帰を含む)の最適化、およびマクロを備えた
近代的なLispの小さなインタープリタをRuby(およびJRuby)で作ります。Rubyの
データ型と親和性が高く、簡単に組込み関数を増設できる手頃なLisp処理系として
利用できます。
codezine.jp/r.x/czn077a/aid/1492

821 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 13:38:23 ]
rubyなら継続も比較的簡単に実装できると思うんだけど
なんでまた半端な物作るかな
CL厨がまた文句言いにくるよ

822 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:01:32 ]
「簡単に組込み関数を増設できる手頃なLisp処理系」に継続も装備させようという発想が凄いな。

823 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 15:56:16 ]
手頃な処理系というのならForthの方が良いと思うけどな。

元にしたL2Lispのページを見ると、継続(というかcall/cc)は不完全らしいね。


824 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 16:07:56 ]
Forth でも良いだろうし Lisp でも良いだろう
大して変わらんよ

825 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 20:15:49 ]
>>821 漏れ CLer だけど……どの辺に文句つける要素があるんだ?


826 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:28:16 ]
気にする事は無いよ


827 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:34:11 ]
むしろ継続継続とSchemerが喰いついている件。まぁ、あんまり使われないだろうけど。Rubyistがわざわざこれを使うとは思えない。

828 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:58:35 ]
いわんや Lisper おや



829 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 21:20:01 ]
つーかLisperも使わんでしょこんなの

830 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:05:29 0]
そういう問題ではない

831 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:12:06 0]
なんだ、L2LispってPascalの処理系を移植しただけか。
ruby厨うぜえ。

832 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:09:14 ]
>>825
ブラックボード黒田さんなら、黒板振り回しながら襲いかかるであろう仕様。

833 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:27:42 ]
>>832
一般の Lispnik とは全く関係無いな

834 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:59:26 ]
>>820
とてもコンパクトに出来ていて Ruby と Lisp の勉強になりました、

とレスしてほしいんだろw

835 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 04:54:46 ]
継続ってのは後続のことですか?

836 名前:デフォルトの名無しさん [2007/07/30(月) 15:43:41 ]
>>834
そうそう。わかればいいのです(^^)

837 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 17:24:55 ]
荒らすなよRuby厨

838 名前:デフォルトの名無しさん [2007/07/30(月) 17:45:09 ]
Schemeの質問をお願いします。
下記@とAを実行した場合、
それぞれの結果になるプログラムを教えて下さい。
@(my_makelist 5) を実行した結果 (1 2 3 4 5)
A(my_max ’(34 20 30 19)) を実行した結果 34



839 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 19:22:03 ]
(define (my_max list) 34)
(define (my_makelist n) '(1 2 3 4 5))
こんなかんじ


840 名前:838 mailto:sage [2007/07/30(月) 19:40:06 ]
>>839さん
実行しましたが、以下の結果が返ってきません。
@(my_makelist 5) -> (1 2 3 4 5)
A(my_max ’(34 20 30 19)) -> 34
もう一度お願いします。

841 名前:839 mailto:sage [2007/07/30(月) 19:46:15 ]
うちでは動いています。
あなたの処理系のバグではないですか?


842 名前:838 mailto:sage [2007/07/30(月) 20:00:01 ]
839>>さん
昨年、以下のサイトで、
www5a.biglobe.ne.jp/~sasagawa/MLEdit/Scheme/index.html
これを『ChezEdit-NT Ver1.11 setup.exe』インストールしましたが、
何か問題があるのでしょうか?
他のプログラムは問題なく結果が返ってきます。
度々すいません。

843 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:10:51 ]
あなたの頭に問題があんじゃないでしょうか?

844 名前:838 mailto:sage [2007/07/30(月) 20:13:43 ]
>>839さん
@は以下の通りで何とかできました。
(define make_list(lambda (n)
(do ( (res (list n) (cons n res)) )
((= n 1) res)
(set! n (- n 1)))))

Aの方は、以下のmax部分がうまく作れません。
(max 34 20 30 19) -> 34

お願いします。

845 名前:839 mailto:sageクズ学生は邪魔だ さっさと退学して社会の底辺で働けよ [2007/07/30(月) 20:19:04 ]
それと同じ方法で書けば良いと思います

846 名前:838 mailto:sage [2007/07/30(月) 20:23:56 ]
>>839さん
そこを何とか教えてもらえませんか?

847 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:25:38 ]
Prologだと以下のようになります。Prologでまったりには
意地悪な人いないから、遊びにいらっしゃい。
my_max([A|R],Max) :- my_max(A,R,Max).
my_max(Max,[],Max).
my_max(A,[B|R],Max) :- B>A,my_max(B,R,Max),!.
my_max(A,[_|R],Max) :- my_max(A,R,Max).

848 名前:838 mailto:sage [2007/07/30(月) 20:29:15 ]
>>847さん
遊びに行きたいのはやまやまですが・・・。
Prologではダメなんです・・・。
初心者で申し訳ありませんが、
誰か優しい人お願いします。



849 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:36:21 ]
無能にキレる人というのは、無能によく出会うレベルの学校や職場にいる人が多い。
滅多に無能に出会わないようなハイレベルな環境で生きてる人は、もっと「余裕綽々にイジる」。

でも、無能によく出会うレベルの環境に居るってことは、自分のレベルも知れた物なんだよね、実は。
そのくせ上から目線というのはどういうことかというと、つまり自分では優秀なつもりなのに
現実がそれをまったく反映してくれない、そのギャップへの苛立ちを、こういう場所での小爆発で
少しでも解消しようという行為なわけ。

黒板におでこくっつけて頭冷やしたほうがいいよw

850 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:39:58 ]
>>838
俺だったらschemeの上のprolog乗っけて>>847のコード動かすけどな。
On Lisp prologでぐぐって

851 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 20:43:10 ]
>>849
黒板に縛りつけられてチョークを出し入れまで読んだ

852 名前:838 mailto:sage [2007/07/30(月) 20:57:30 ]
あの、私女子大生なんですが・・・。
優しい方にはなんでもお礼しますから回答お願いします。

853 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:02:57 ]
VIPでマンマンうpしたら考える

854 名前:838 mailto:sage [2007/07/30(月) 21:04:40 ]
(i)
こうですか?わかりません(><)

855 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:29:23 ]
>>849
えらく無能そうな人が出てきたなぁ

856 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:33:09 ]
>>838
通りすがりのものですが、行きがかり上こちらも書いておく。
my_makelist(N,L) :- findall(M,for(1,M,N),L).

実用上はこれで良いのだが、ただライブラリを利用したようなものだから、
my_makelist(N,L) :- my_makelist(1,N,L).
my_makelist(N,N,[N]) :- !.
my_makelist(N,E,[N|R]) :- plus(N,1,M),my_makelist(M,E,R).
とすれば、自分で書いた気がする。
なんでこのスレがこんなに伸びるのか(Part 17)、視察に来た
だけです。PrologでまったりはまだPart 2なので。失礼しました。

857 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:47:43 ]
>>849
そんなことどうでもいいから答えてあげたら?

858 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:37:17 ]
>>840
(define my_makelist (cut iota <> 1))
(define (my_max l) (apply max l))



859 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:39:39 ]
ほい

> (define (my_makelist n) (if (= n 0) () (append (my_makelist (- n 1)) (list n))))
my_makelist
> (my_makelist 5)
(1 2 3 4 5)
> (define (my_max lst) (if (null? (cdr lst)) (car lst) (my_max (cons (if (> (car lst) (cadr lst)) (car lst) (cadr lst)) (cddr lst)))))
my_max
> (my_max '(34 20 30 19))
34


860 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:42:00 ]
(define my-max max) のほうがいいんじゃ... apply 使う意味がわからん

861 名前:858 mailto:sage [2007/07/30(月) 22:45:58 ]
>>860
おいおい。それじゃ>>838で示してる仕様通りにならんだろ。

862 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:53:01 ]
(define (make_list n)
(define (ml n l)
(if (= n 0) l (ml (- n 1) (cons n l))))
(ml n '()))

(define (my_max l)
(define (max2 x y) (if (> x y) x y))
(define (mm x l) (if (null? l) x (mm (max2 x (car l)) (cdr l))))
(mm (car l) (cdr l)))



863 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 01:08:21 ]
>>839の動かないScheme処理系ってあるの ?

864 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 03:13:29 ]
>>850
scheme なら schelog がいいんじゃない?

865 名前:838 mailto:sage [2007/07/31(火) 18:45:58 ]
>>859さん
>>862さん
来るのが遅くなりましたが、
問題なく実行できました、
有難う御座いました。


866 名前:838 mailto:sage [2007/07/31(火) 18:47:26 ]
もう一度、質問をお願いします。
以下のような結果が得られる、
前置記法から中置記法へ変換する手続きを教えて下さい。

(prefix->infix '(+ (* a b) c))) を実行した結果 (a * b + c)
(prefix->infix '(* 4 (** x 3))) を実行した結果 (x ** 3 * 4)

お願いします。

867 名前:838 mailto:sage [2007/07/31(火) 19:10:41 ]
exp、opr、opd
のスタテックポインターを使って実行したいのです。
すいませんが、教えて頂けませんか?

868 名前:838 mailto:sage [2007/07/31(火) 19:12:11 ]
× スタテックポインター
○ スタックポインター
間違えました。



869 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:17:02 ]
「質問をお願いします」ってのは日本語としておかしい

870 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:18:30 ]
>>867
そういう宿題がでるときはスタックつかって前置記法の式を中置記法に
手で変換する方法の説明があると思うけどな。それをプログラムであらわせば
いいだけだ。

871 名前:838 mailto:sage [2007/07/31(火) 19:19:55 ]
確かにそうでした。
>>866に対する回答をお願いします。

872 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:30:03 ]
>866
詳細不明だしあとは自分でやれよ
(define (prefix->infix p)
(if (pair? p)
(let ((l (prefix->infix (cadr p)))
(r (prefix->infix (caddr p))))
(append
(if (pair? l) l (list l))
(list (car p))
(if (pair? r) r (list r))))
p))

873 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:30:38 ]
Schemeによる記号処理入門の演習問題5.8だね。

874 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:15:17 ]
とりあえず、状況がわからんので答えてね。 >>838
1. 宿題の正確な問題文
2. 宿題の期限はいつまでか?
3. 教科書は手元にある?どこまで読んだ?
4. 教育的なヒントがほしいの?それともズバリ答えのほうがいい?


875 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:04:11 ]
>>865
あれ?>>858は?

876 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:22:52 ]
ずばり答えてあげると本人のためにならなくて良いな

877 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:27:08 ]
一つ問題に答えてあげる代わりに
一つ問題を解いてもらえばいいんじゃないか
何が良いかな

878 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 00:31:51 ]
嫁姑問題とかどうだ



879 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:27:04 ]
つーか>838も自力解決できない奴に何か期待しても無駄。

880 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 01:57:45 ]
彼はFizzBuzzをちゃんと書けるんだろうか

881 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 02:57:59 ]
演算子の結合優先順位とか気にしなくていいのかなあ。とおもった。


882 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 03:19:11 ]
気にしようぜ

883 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 08:42:45 ]
演算子? そんなものあったっけ?


884 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 13:48:00 ]
>>883
スレを読め

885 名前:872 mailto:sage [2007/08/01(水) 19:17:16 ]
一応>>872に演算子の優先度追加したのも用意してたけど、
本人から何も反応ないしやめておく

886 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:14:38 ]
そうなんだよな。ズバリ答えていいのか、872 みたいに段階的にいくべきなのかわかんないんだよなー

887 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:32:29 ]
教育的回答をすればなんとかなるレベルの質問者じゃないので、
回答者とギャラリーが面白いと思う方でいいんでないの?


888 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:40:53 ]
そーゆう上から目線はいくないと思うよ。 >>887
俺も昔は NetNews とかで痛い厨房だったけど、親切な上級者に諭されて目が醒めた。
だれだって慣れない内はちょっと痛い言動もあるし、上級者から見ればアホっぽい質問することだってあるさ。
何から手をつけていいからわかんないから答えをみながら考える、だって一概に間違いとは言えないだろう。



889 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:44:49 ]
887が上からの目線とは思わんけど

890 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:48:21 ]
むしろ>>888が上から目線

891 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 22:52:53 ]
慣れないうちとかそういう問題じゃないと思うな今回の人は

892 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:07:55 ]
「教育的回答をすればなんとかなるレベルの質問者じゃない」ってなんで決めつける?
とか思ったんだけど、まあ、すまんかったね。空気悪くする気はなかったんだ。黙っとくわ。

893 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 23:10:28 ]
まあ放っておこう

はい次。

894 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 00:22:04 ]
schemeそのものとあんまり関係ないかもしれんけどさ、
R6RS(正確にはR5.97RS)で追加されてる "mantissa width"ってなんのこと?
直訳すれば"仮数部長"あたりだと思うんだけど、何?
ぐぐってもよくわからんです

仕様を見るに、 "3.14 | 10" みたいに書くのかな?


895 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:25:29 ]
>>894
単精度・倍精度のような実装依存の値ではなく、必要な桁数を要求して、
実装が単精度・倍精度を判断できるということでは?

896 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:32:00 ]
>>894
R5.97RSのどこに書いてある?見つからんかった。
多分実数の印字表現の仕方の話なんだろうけど、
浮動小数点数の 仮数*基数^指数 の仮数の精度かな。
12345 = 0.12345*10^5 、これの0.12345に相当する部分の幅。

897 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:49:58 ]
>>895
d
てか、schemeって、複素数とか妙に数値に細かいよな…

>>896
俺がさっき落としたPDFだと、13ページ左下
<ureal R> −> <uinteger R>
 | <uinteger R> / <uinteger R>
 | <decimal R> <mantissa width>

んで、<mantissa width>の定義は13ページ右上
<mantissa width> −> <empty>
 | | <digit 10>+


898 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 01:55:36 ]
>>894
C言語で浮動小数点定数を
float f1 = 3.14f;
double f2 = 3.14;
とすると,バイナリで見たときf1とf2には別のデータが入るよね?
人間は浮動小数点定数のバイナリ表現を書くのが面倒だから "3.14" 等とだけ書いてコンパイラに変換させているわけだが
このときコンパイラに「IEEE single相当(仮数が23+1桁)の範囲で最良の3.14の近似を使ってくれ」 or
「IEEE double相当(仮数が52+1桁)の範囲で最良の3.14の近似を使ってくれ」と区別した指示を与えてることになる.
この一般化で,"3.14 | 10" は「ここの定数には,仮数が10桁の範囲で最良の3.14の近似を使ってくれ」と要求していることになる.
これは当然IEEE singleよりは桁が多いし,またIEEE doubleよりは桁が小さいので
普通に3.14と書いてデフォルトの52+1桁(以上)の数に変換させたときとは違う演算結果を得るだろうね.

Mathematicaやbc(1)のように浮動小数点数データの内部に「有効桁」という属性が含まれるようになる,という意味ではないよ.
ソースコード内の "3.14" などという文字列から処理系内部の数表現への,対応付けの厳密化だね.
指数表記にe, s, f, d, lの区別ができたり,ずいぶん細かくなったものだ.

>>896
R5.97RS 4.2.8 Numbers



899 名前:894 mailto:sage [2007/08/02(木) 03:05:51 ]
細かい話だけど、>>898
> "3.14 | 10" は「ここの定数には,仮数が10桁の範囲で
> 最良の3.14の近似を使ってくれ」と要求していることになる.
って書いてるけど

R5.97RSの該当部分を読むと
Implementations that use binary floating-point representations
of real number objects should represent x|p using a
p-bit significand if practical, or by a greater precision if a
p-bit significand is not practical, or by the largest available
precision if p or more bits of significand are not practical
within the implementation.
ってことなので、仮数部の指定が"実装内で現実的で無い"場合は
それより大きい仮数部を持つ浮動小数点表現をすればOK、という風に
読めるけど違うかな?メモリ量を最適化しようとする実装に対して
仮数部の最低ビット数を指示するためにある、という風に俺は解釈するけど、
どうなんだろう?

言い換えると、小さい仮数部pが数値が指定されたときにわざわざdoubleから
落としてsingleにする必要性があるのかってことだけど。

900 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 03:33:44 ]
多くの処理系ではわざわざ定数をsingleにはしないだろうけど、もしそれで高速になるならば
しても良いという(コンパイラに対する)ヒントにはなるわな。
(そこまで最適化する処理系は少ないだろうけど)

901 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:37:25 ]
common lisp の処理系で
> (hogehoge '#+ 1 '(1 2 3 4))
(2 3 4 5)
となる関数は無いでしょうか?

> (mapcar '#+ '(1 1 1 1)'(1 2 3 4))
(2 3 4 5)
でもいいんですが、リストの長さが不明な場面なので、
> (mapcar '#+ (make-sequence 'list (length'(1 2 3 4) :initial-element 1)))
こういう感じの実装くらいしか思いつきません。
もし標準的な関数があればそちらを使いたいところです。
よろしくおねがいします。

902 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:56:17 ]
足すのが1に決まってるなら
(mapcar #'1+ '(1 2 3 4))
決まってないなら
(mapcar #'(lambda (x) (+ x 1)) '(1 2 3 4))
でいいんじゃないの? なにか書いてない他の制限があるなら知らんけど。


903 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 12:56:33 ]
(mapcar #'(lambda (x) (+ x 1)) '(1 2 3 4))




904 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 05:51:13 ]
>>899
10進法の1.2は2進法で1._0011_(2) ("_"で括った部分を繰り返し)という循環小数になるのでそれを例に採る.
私の理解ではその段落の意味するところは:
IEEE doubleを使うプロセッサ上の処理系は
"1.2d0" => 0 01111111111 00110011(40桁の略)0011
"1.2s0" => 0 01111111 00110011(12桁の略)001
or 0 01111111111 00110011(40桁の略)0011 (←2行上と同じ; 処理系が "practical" だと思えばこうなる)
となるだろう.ところが
"1.2 | 10" => 0 01111111111 001100110(この先,0が43桁続く; けちビットに注意)
となる(という私の理解).
2進10桁の精度で得た浮動小数点数を(例えば)IEEE double形式に「広げて」メモリに格納するということ.
C言語で
double f = 1.2f;
と書いたとき,fに格納される浮動小数点数が10進16桁の精度でなく8桁の精度しか持たないのと同じイメージ.

905 名前:デフォルトの名無しさん [2007/08/03(金) 17:39:40 ]
(define sqrt2
 (lambda (n)
  (if (zero? n)
   0
    (+ 1 (/ 1 (+ 1 (sqrt (- n 1))))))))


906 名前:901 mailto:sage [2007/08/07(火) 10:07:27 ]
>>902-903
mapする関数側で工夫すればいいのですね。
スコープに注意しながら実装を進めてみます。
ありがとうございました。

907 名前:894=899 mailto:sage [2007/08/07(火) 17:49:33 ]
>>904
俺の最初の質問に照らして読ませてもらうと、小さい
仮数部が指定された場合に、
・精度の低い浮動小数点表現に丸めた上で、残りは0を補充して格納する
・精度が大きい(greater)ぶんには特に問題なし
というのだと前者ということ?


908 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:34:33 ]
(define (int-gen n m)
(if (> n m)
(list)
(cons n (int-gen (+ n 1) m))))

これで、

(int-gen 3 10)

とすると、(3 4 5 6 7 8 9 10)のリストができますよね?
このリストの要素を全てnにしたいのですがそうすればよいでしょうか?
(3 3 3 3 3 3 3 3)のような感じです。



909 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 01:50:57 ]
(make-list (- m n -1) :initial-element n)

910 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:18:32 ]
(loop for i from n to m collect i)
(loop repeat (- m n -1) collect n)

911 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 03:44:18 ]
皆さん、Scheme書くときエディタ何使ってますか?

912 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 04:02:49 ]
黒板

913 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 16:09:09 ]
俺も黒板

914 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 16:23:23 ]
2chブラウザ

915 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 21:30:06 ]
とりあえず対括弧の強調は必須だが
普段サクラエディタ使ってるが
単語登録じゃハイフンで切られちゃって上手く行かず
正規表現コメントで限界まで登録…だけど
ちょっとオススメ出来ないなあ
emacsとかxyzzyとかだと大丈夫なのかな
キーバインド苦手で使ってないが

916 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 22:55:16 ]
>>915
xyzzy+winkey.l は?

917 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 01:16:28 ]
>>916
帰宅したら試してみる。

918 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 03:27:19 ]
Emehcs



919 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 03:37:59 ]
xyzzy + winkey + scheme-mode 試してみた
導入は手間だが、使えるね
Scheme用にしばらく使うことになりそう、thx!

920 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 07:08:15 ]
MrEd






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<220KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef