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

L-99 (27)

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

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

P27

解答
;; Common Lisp
(load "./combination")

(defun group3 (list)
  (let ((retlist '()))
    (dolist (l (combination 2 list) retlist)
      (let ((diff (set-difference list l)))
	(dolist (m (combination 3 diff))
	  (setq retlist `(,@retlist (,l ,m  ,(set-difference diff m)))))))))

難しくて解けない!。一つ一つ細かく手順を踏んで解い

て行けば良いのかもしれないが、考えている最中で頭が、

お花畑に散歩に出掛けてしまう。set-differenceを使わ

くても良いような方法が思いつかない。

このgroup3を一般化した、groupという問題もあるが、

良い方法が考えつかないので、後で挑戦することにした!

Schemeはset-differenceがないので、これまた後回し!