Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2007-01-29

L-99 (10〜13の訂正)

| 23:33 | L-99 (10〜13の訂正) - わだばLisperになる を含むブックマーク はてなブックマーク - L-99 (10〜13の訂正) - わだばLisperになる

L-99に挑戦 - L-99:Ninety-Nine Lisp Problems

P10から13まで設問を良く読んでなくて適当に解釈し

て回答を作ってたことに気付きました(´▽`*)アハハ

P10は、P9で作成したPACKを使用して、ENCODEを作成せ

よとの問題でした。

ということで、

;; Common Lisp
(defun encode (list)
  (mapcar #'(lambda (l)
	      `(,(length l) ,(car l)))
	  (pack list)))
;; Scheme
(define encode
  (lambda (ls)
    (map (lambda (l)
	   `(,(length l) ,(car l)))
	 (pack ls)))) 

のように回答するのが筋みたいです。

P11は、アイテムに"(1 A)"のようなものがある場合、直

接"A"のような形式で出力せよ、とのことなので、

;; Common Lisp
(defun encode-modified (list)
  (mapcar #'(lambda (l)
	      (if (= (length l) 1)
		  (car l)
		`(,(length l) ,(car l))))
	  (pack list)))
;; Scheme
(define encode-modified
  (lambda (ls)
    (map (lambda (l)
	   (if (= (length l) 1)
	       (car l)
	       `(,(length l) ,(car l))))
	 (pack ls)))) 

のように答えるのが筋だったようです。

P12はP11の形式をデコードするデコーダーを作成せよと

のことでしたが、自分はP10の形式のものをデコードす

るという内容で答えてました。

ということで、自分がP13の答えとして書いた

decode-modifiedがP12の回答となります。

そして、P13の質問は、ENCODEをPACKのような関数を使

用しないで作成せよとのことだったので、P11で回答し

た内容がP13の回答になります。

という訳で、問題を先取りしたり、抜かしたり。

問題はちゃんと読むことにしよう。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20070129