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 |

2008-05-16

GOOでL-99 (P16 周期Nで要素を間引く)

| 00:24 | GOOでL-99 (P16 周期Nで要素を間引く) - わだばLisperになる を含むブックマーク はてなブックマーク - GOOでL-99 (P16 周期Nで要素を間引く) - わだばLisperになる

GOOでは、CLで有名なRichard C. Water氏のSERIESを手本にした遅延評価のシリーズが組み込みで用意されています。

rangeや、from等、scan-rangeっぽいものがあるのですが、汎用的なforループの中で使えるというところが便利です。

;(drop '(a b c d e f g h i j k) 3)
;=> (a b d e g h j k)

;(drop #(a b c d e f g h i j k) 3)
;=> #(a b d e g h j k)

;(drop #[a b c d e f g h i j k] 3)
;=> #[a b d e g h j k]

;(drop "abcdefghijk" 3)
;=> "abdeghjk"

(dg drop (u|<seq> n|<int> => <seq>))

(dm drop (u|<seq> n|<int> => <seq>)
  (def res (packer-fab <lst>))
  (for ((x u)
        (cnt (from 1)))
    (unless (zero? (rem cnt n))
      (pack-in res x)))
  (as (class-of u) (packed res)))

ゲスト



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