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-06-18

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

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

先週さぼったの2連続で…。前回と同じでmy-splitを使っています。文字列の扱いをどうしたら良いかと思いましたが、とりあえず印字表現をそのまま挿し込むことにしました。

(insert-at 'alpha '(a b c d) 2) ;=> (a alpha b c d)
(insert-at 'alpha #(a b c d) 2) ;=> #(a alpha b c d)
(insert-at 'alpha #[a b c d] 2) ;=> #[a alpha b c d]
(insert-at 'alpha "abcd" 2)     ;=> "aalphabcd"

(dg insert-at (item|<any> u|<seq> p|<int> => <seq>))

(dm insert-at (item|<any> u|<seq> p|<int> => <seq>)
  (def (tup x y) (my-split u (1- p)))
  (cat x (lst item) y))

(dm insert-at (item|<any> u|<str> p|<int> => <str>)
  (def (tup x y) (my-split u (1- p)))
  (cat x (to-str item) y))

GOOでL-99 (P20 指定した要素を削除)

| 17:39 | GOOでL-99 (P20 指定した要素を削除) - わだばLisperになる を含むブックマーク はてなブックマーク - GOOでL-99 (P20 指定した要素を削除) - わだばLisperになる

以前に定義したmy-splitを使っています。GOOで分割代入/束縛させたい場合、変数のところをタプルにすると分割して束縛されます。

(remove-at '(a b c d) 2) ;=> (a c d)
(remove-at #(a b c d) 2) ;=> #(a c d)  
(remove-at #[a b c d] 2) ;=> #[a c d]  
(remove-at "abcd" 2)     ;=> "acd"

(dg remove-at (u|<seq> p|<int> => <seq>))

(dm remove-at (u|<seq> p|<int> => <seq>)
  (def (tup x y) (my-split u (1- p)))
  (cat x (sub* y 1)))

第4回 慢性的CL勉強会@Lingr 8時だョ!全員集合 告知

| 01:59 | 第4回 慢性的CL勉強会@Lingr 8時だョ!全員集合 告知 - わだばLisperになる を含むブックマーク はてなブックマーク - 第4回 慢性的CL勉強会@Lingr 8時だョ!全員集合 告知 - わだばLisperになる

今回も、懲りずに開催致します!

お題は全部で3つで。1枠25分+休憩5分で時間の枠に収まらなかった場合、次回へ持ち越しという流れで。

お題としては、

  • CLの落し穴集(コーディングではまるところ)
  • マクロ
  • コンディションシステム

「CLの落し穴集」が今回初で、マクロとコンディションシステムについては、前回からの引き続きです。

場所:Lingr: Common Lisp部屋
日時6/21 (土) 20:00から適当(途中参加/離脱/ROM歓迎)
勉強会の進行テキストを最初から参加者が眺めてゆき、質問があったり、議論になりそうなことがあったら議論してゆきます。
勉強会の目標CLに関して一つ位賢くなった気になること
時刻お題対象者参考リンク
20:00-20:25Common Lisp PitfallsCLでコーディングする方Common Lisp Pitfalls
20:30-20:55THE POWER OF LISP MACROS (Edi Weitz氏)CLマクロ入門者的な方macros.lisp
21:00-21:25「Common Lisp における例外処理 〜Condition System の活用〜」(数理システムさん)CLのコンディションシステム入門者的な方(PDF)
21:25-反省/質問/お題の提案/雑談

のようなものをお題にすることを考えています。

また、「こういうのを勉強してみたい!」というのがあれば、このブログにコメント頂くか、Lingr等に書き置きしてみて下さい!

また、好きなテーマを持ち込んでみて頂くというのも大歓迎です!

ゲスト



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