- 締切済み
だれでもわかるそうです。
ただいま仕事も引退して老後の生活を送っています。 老後の趣味でパソコンを勉強しようと思いschemeをしています。 買った問題集の回答がよくわからないのでここで質問させていただきたいと思います。 だれでもできる簡単問題らしいのでだれか答えてくださると幸いです。 (define (wrap l) (cond ((null? l) (cons l l)) (#t (cons ここになにかをいれろ)))) って問題です。任意のリストlを(l)で返すプログラミングだそうです。 どうかお願いします。ぺこり。 前 あとwを任意のs表現としてS表現のみを要素とする長さ1のリスト(w)を、w,car,cdr,consおよび()を用いて表現できなかったので、だれかヒントをください
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- root139
- ベストアンサー率60% (488/809)
穴埋め問題の方ですが、下記の様になれば良いのですよね? (wrap '()) → (()) (wrap '(a b c)) → ((a b c)) 素直に書けば↓になりましたが・・・。 (define (wrap l) (cons l '())) 穴埋めということで、↓になり・・・。(condの意味が無い・・・) (define (wrap l) (cond ((null? l) (cons l l)) (#t (cons l '())))) 無理して再帰を使ったら、↓こんな感じに・・・。 (define (wrap l) (cond ((null? l) (cons l l)) (#t (cons (cons (car l) (car (wrap(cdr l)))) '())))) 全く無駄な処理が増えただけで、再帰や cond は解法を複雑にしているだけとしか思えません・・・。 業務でこんなプログラムが納品されたら、訳が分かってない人間が書いたものだと思うでしょうね・・・。
- osamuy
- ベストアンサー率42% (1231/2878)
京大の基礎情報処理の課題みたいなので、だれでもわかるってのは無理っぽいような。 http://www.math.kyoto-u.ac.jp/~susumu/lecture/kisoj11-report.pdf >あとwを任意のs表現としてS表現のみを要素とする長さ1のリスト(w)を、w,car,cdr,consおよび()を用いて表現できなかったので、だれかヒントをください 古典的な方法として、Lispのデータ構造(セル)を図解してみるとか。 http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=LISP+%E3%82%BB%E3%83%AB%E6%A7%8B%E9%80%A0+%E5%9B%B3&gs_sm=e&gs_upl=651741l658787l0l659464l28l24l4l0l0l3l213l3592l0.22.2l28l0&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1018&bih=937&wrapid=tlif132771814780710&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=l2EjT-jcJ8uviQfIsrzUBA
- Tacosan
- ベストアンサー率23% (3656/15482)
(2) の方だけど, 「任意のリストlを入力として、(l)を出力とする」という表現もいくつかの解釈が存在します. どのような入力に対してどのような出力を要求しているのですか? しかし, こんなの再帰的になんてしないよなぁ.... (define (wrap . args) args) ってすれば (wrap 'a 'b 'c) => (a b c) じゃなかったっけ.
- notnot
- ベストアンサー率47% (4900/10359)
問題を正確に書いてください。
お礼
(1) wを任意のs表現とするとき、このS表現のみを要素とする長さ1のリスト(w)を、w、car,cdr,consと空リスト()から適宜必要なものを選んで組み合わせて表現せよ (2) 任意のリストlを入力として、(l)を出力とするような再帰的関数wrapの定義をせよ (consに二つの引数)を埋めることで完済させろ。 です。できたら解いてみてください
- lv4u
- ベストアンサー率27% (1862/6715)
>>だれでもできる簡単問題らしいのでだれか答えてくださると幸いです。 それは、うそですね。数年くらいプログラム経験がある人でも、わからない人は多いと思いますよ。 >>老後の趣味でパソコンを勉強しようと思いschemeをしています。 パソコンの勉強はいいのですが、schemeじゃあなくて、エクセルとかワードとかお絵かきソフトを勉強されるほうがいいのでは?schemeよりも、ずっと役にたつ場面が多いと思いますよ。
お礼
そうですか。本にはサルでもわかると書いてあるのですが…すみません。 この本ぐらい終わらせようと頑張っているのですが・・・中途半端で終わりそうです。 申し訳ありませんでした
お礼
おそらく(1 2 3)なら((123))を出力するんだと思います