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-04-07

L-99 (54)

| 00:32 | L-99 (54) - わだばLisperになる を含むブックマーク はてなブックマーク - L-99 (54) - わだばLisperになる

L-99 54問目に挑戦 - L-99:Ninety-Nine Lisp Problems

P54A

解答
;; Common Lisp
(defun istree (obj)
  (flet ((isnode (node)
	   (or (null node) (istree node))))
    (and (listp obj)
	 (= 3 (length obj))
	 (equal '(nil t t) (mapcar #'isnode obj)))))

;; Scheme
(define (istree obj)
  (let ((isnode 
	 (lambda (node)
	   (or (null? node) (istree node)))))
    (and (list? obj)
	 (= 3 (length obj))
	 (equal? '(#f #t #t) (map isnode obj)))))

また番号が飛んで54問目。今回から二分木の章。今回の

お題は、二分木をリストで表現して、それが二分木の形

式になっているかをチェックするというもの。いまいち

イメージが掴めないが、とりあえず作成