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-02-26

ArcでL-99 (P21 指定した位置に要素を挿入する)

| 23:49 | ArcでL-99 (P21 指定した位置に要素を挿入する) - わだばLisperになる を含むブックマーク はてなブックマーク - ArcでL-99 (P21 指定した位置に要素を挿入する) - わだばLisperになる

今回は、指定した位置に要素を挿入する関数の作成がお題です。

前回のものをちょっと細工して終了。

(insert-at 'alfa '(a b c d) 2)
;=> (a alfa b c d)

(def insert-at (item lst pos)
  (unless (<= 1 pos (len lst))
    (err "The index is bad for a sequence of length."))
  ((afn (lst acc cnt)
     (if (or no.lst (is pos cnt))
	 (join rev.acc (list item) lst)
	 (self cdr.lst
	       (cons car.lst acc)
	       (+ 1 cnt))))
   lst () 1))