Lisp Scheme Part27at TECHLisp Scheme Part27 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト50:32 09/07/29 18:53:31 >>48 なるほどよくわかりました。2^nを計算 するアルゴリズムと基本的には同じですね。 要素をとる、とらない、の2通りがあるから。 冪集合の名前の通りだ。 51:27 09/07/29 19:25:07 >>48 pa$というのは何ですか?mzschemeだとエラーになってしまいます。 52:デフォルトの名無しさん 09/07/29 19:35:51 >>51 (define (pa$ fn . args) (lambda more-args (apply fn (append args more-args)))) 53:デフォルトの名無しさん 09/07/29 20:28:19 >>51 部分適用といって、手続きの引数の一部を固定した新たな引数を返す手続き。 例えば、 ((pa$ + 3) 2) ⇒ 5 みたいな。SRFI-26のcutと似たようなもの。cutなら、 ((cut + 3 <>) 2) ⇒ 5 こんな感じ。 54:デフォルトの名無しさん 09/07/29 20:33:40 新たな引数→新たな手続きの間違い。失礼。 55:デフォルトの名無しさん 09/07/29 21:11:30 教えてもらってやっと納得のいくコードが書けたよ。 最初に書いたのは無駄だらけだった(笑)。 (define (power-set ls) (if (null? ls) '(()) (let ((subset (power-set (cdr ls)))) (append subset (map (lambda (x) (cons (car ls) x)) subset))))) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch