読者です 読者をやめる 読者になる 読者になる

CodeIQの言語総選挙の予選でcodegolf

先月開催されたCodeIQの言語総選挙の問題の予選ルールがショートコーディング入門によさ気で面白かったのです。 出題者がショートーコーディング本の著者のOzyさんという事もあり、これは解説でゴルフコードの紹介なんかもあるんでないかなーと期待して気合…

windowsでsbcl+lispbuilderのセットアップ

chatonのCL部屋で困ってる人がいたみたいなので。 ここのsbclのwindows forkを使えば最速(全プラットフォーム中)でサンプルの動作まで持っていけるはず。 配布のこととかも考えたらライブラリの配置、ロード方法をしっかり理解しといた方が良いとは思うけど…

逆FizzBuzz

http://www.jasq.org/2/post/2012/05/inverse-fizzbuzz.html http://d.hatena.ne.jp/matarillo/20120515/p1 より。入力を正規表現に変換してしまえばとても簡単になる。 https://gist.github.com/2708823 けれど、cl-ppcreだと上記のコードのままじゃちょっ…

Google Code Jam 2011 (予選) 参加記録と新言語「Anko C++」

Google Code Jam ついった見てたらLISPで参加してる人がちらほら見えたので自分もやってみた。初参加。 結果はA,B,Cそれぞれsmall, large両方正解で70点。Dはsmallで弾かれて0点。 Problem A. Bot Trust 自分のターンでない時には行動ポイントを貯め、自分の…

[ ] で再帰

ふと思い立って、以前Arcを真似て書いた無名関数リーダーを再帰できるようにしてみた。 良い記号が思い付かないのでとりあえず ^ で。 xyzzy-lisp/brackets.l at master · youz/xyzzy-lisp · GitHub (defun bracket-reader (stream char) (declare (ignore c…

Parens Language in Lisp

404 Blog Not Found:Math - 新言語、(), [] and {} これはLispで実装しとかないとなーという事で書いてみた。Gauche用。 parens language (in scheme) こんな感じで動いてます。 gosh> (parens->lisp '((((())))(((())))(((()))))) ; (UUUU)(UUU)(UUU) = SKK…

xyzzy用リーダーマクロ x 3

ちょっと前にリーダーマクロに関するtweetや記事が色々出てたので(発端はここ?)、普段xyzzyの*scratch*で使っているリーダーマクロを晒してみる。 #?= (debug-printリーダー) Gauche's debug-print macro for CL Gaucheの#?=の劣化コピー。CLでも使用可。 > …

#+:nil

リリカル☆Lisp開発日記 » Blog Archive » #+のちょっといい話 #:aとか任意のuninternedなシンボルを使っても大丈夫そうだなーという事を考えて@Yubeshi: (list 1 #+#:|ちょっと外しときますね| 2 3)2010-07-14 13:18:13 via APIってな感じで||を使ってコメン…

CLでpangram

HackerNews見てたら有名なパングラムのアレの実写映像が。 The quick brown fox ... | Typophile …か、かわいい!折角なのでPanprogram(?)をCLで書いてみた。 文字列とか適当な名前のシンボルを使っちゃうとつまらないので、CLパッケージからexportされてるシ…

formatで◆

HakerNews経由で Google グループ あなごる過去問にありそう? (format t "~{~*~#@T~:*~#@**~#@{**~}~%~#@*~*~}~:*~{~#@*~#@T~#@*~**~#@{**~}~%~}" (make-list (read))) 7 * *** ***** ******* ********* *********** ************* ************* *********…

CLでshorten lambda

http://blog.practical-scheme.net/gauche/20100428-shorter-namesの^_a-zをxyzzyとかで使ってみようか、という事で書いてみた。 short aliases for lambda expression ひげぽんさんのshortenライブラリにある^a*とかも付け加えてあります。これで^_を使えば…

待ち判定

makeplex salon:あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定 (1/2) - ITmedia エンタープライズ 泥臭いけど2時間くらいでなんとかなったような気がする。 http://gist.github.com/356548しかし七対子のテストした時 * (find-waiting …

CL版ModanShogi

http://gihyo.jp/dev/column/01/prog/2010/aprilfool2010-01 Route 477 - プログラミング言語ModanShogiを公開しましたプロesolang作家yhara先生のファンの1人としてこれは取り組まねばなるまい、という事でCLに移植。 http://gist.github.com/351580 パーサ…

Normal Distribution Table

あなごる - kozima の日記 - cadr group anarchy golf - Normal Distribution Table 2バイト差だったけど解答見ると結構違うなあ。 自分の (format t" Z |~{ 0.0~d~^ ~} ----+~70@{-~}"'(0 1 2 3 4 5 6 7 8 9)t)(dotimes(i 310)(format t"~[ ~,,-2f |~] ~2@*…

find anagrams

anarchy golf - find anagrams 今朝方投稿した90byteのコード (loop(set'w #1=(read-line))(format(apply'= 1(map'list(lambda(c)(count c w))#.#1#))"~A "w)) sortは破壊的だし、と思って避けてたらヘンテコなコードになっていた。 投稿したときは「これで…

復習

anarchy golf - Goldbach partition 匠の仕事にたんぽぽを乗せるお仕事。#n=の理解が間違っていたので if(every'p #1=`(,p,(- n p)))nconc #1# ↓ if(every'p`#1=(,p,(- n p)))nconc`#1# の変形はエラーになるだろなーとか思ってた。このリーダーマクロを再定…

closette

#1 (defun (setf <access-fn>) ...) - 日々ごちゃごちゃと考える defunはclosette付属のnewcl.lispの定義をそのまま使って、あとxyzzyにないtypecase, ecase, print-unreadable-object等を適当に書き、んでstd-instanceの定義のprint-functionで引っか…

AO Bench(4)

http://gist.github.com/66945 途中だけど気になったので比較Windows XP SP3 (Core2 1.86 GHz) Evaluation took: 8.578 seconds of real time 8.546875 seconds of total run time (8.437500 user, 0.109375 system) [ Run times consist of 0.205 seconds G…

shibuya.lisp tt#3後

shiroさんの発表見てて思いだしたAO Benchをちょっと改修。10秒切れた。 コンパイル時のnoteを見るにまだ最適化できてない箇所がわんさかあるのでもうちょっと頑張る。あとweb4r、サクっと動かせたは良いがレスポンスが異常に遅い時があるので忘れないうちに…

amazon ok 2

祝 Let Over Lambda 邦訳出版! - 'T - cadr groupを見て9日のうちに予約完了したはずなのだけど今日になって配送予定日未確定通知がorz

Gray code

anarchy golf - Gray code (let ((n (read)) (x 3) (l '(0 1))) (dotimes (i (1- n)) (setq l (append l (mapcar #'(lambda (a) (logxor x a)) l)) x (* x 2))) (dolist (c l) (format t "~V,'0B~%" n c))) といった方法も思いついたんだけど短く書けない。 …

聴講希望で

第32回たまたま帰ってきたCL勉強会@Chaton8時だョ!全員集合 ネタ募集 - 'T - cadr group唯一取ったプログラミングというか計算機っぽい講義の課題でエセチューリングマシンをjsで書いた事は覚えてるんだけど、講義の内容は遥か記憶の彼方…とりあえずググって…

思い付かないので

とりあえず整理だけ。変数名をc[ad]+rにしたのもいけなかったな… (defun nalist-to-plist (alist) (do* ((result (car alist)) (a alist next) (next #1=(cdr a) #1#)) ((null a) result) (let ((1st (car a)) (2nd a) (3rd (cadr a))) (setf (car 2nd) (cdr…

10分なら

寝る前にやってみようと思ったのに1時間かかった件 o...rz 10分でコーディング x 2 〜リストの破壊的操作篇〜 - 'T - cadr group最初(loop for 〜 on 〜 …)使って書き始めてはまった。 (defun nalist-to-plist (alist) (do* ((result (car alist)) (a alis…

見事な仕事だと(ry

http://practical-scheme.net/chaton/ (via さようならありがとうLingr、こんにちは破壊力ばつ牛ンChaton - 'T - cadr group)仕事はぇー。ところでsymbolicwebはどこ行ったんだろう。 ここは更新されてるみたいだけど。

hexagon

anarchy golf - hexagon 2nd fixed atom5個分で書けてしまうCL最強ですね (format t"~{ ~*~#@{ ~}~:*~#@*__~#@{/ \\__~}~#@*~* ~}~:*~{/ \\~#@*~#@{__/ \\~}~:*~#@*~#@{__/ \\~} ~:*\\__/~#@*~#@{ \\__/~}~:*~#@*~#@{ \\__/~} ~}~:*~{~*~^~:*~#@* ~#@{ ~}~#@…

un dialecte émotionnel de Lisp

comp.lang.lispからエイプリルーフールネタ Google グループ http://www.lrde.epita.fr/~didier/software/smilisp.php :o(が開き括弧 :-)が閉じ括弧に。同梱のsmilisp.elを使ってsmilisp-bufferすると smileyっての知らなんだ。 で、スレより Sorry, but I d…

文字列型の指定

http://blog.bugyo.tk/lyrical/2009/03/cl-4.htmlのコメントの続き。SBCLのソース(code/seq.lisp)をチラっと見てみたら、もしかしてvectorと指定した方が速い?と思って追試してみた。 ほぼ同じ内容のコード(ansiclのテキスト使った)をリピート回数2万回で型…

リーダーマクロ

色々感想書く前に、忘れないうちに酒のネタ。 全世界でのべ100万回くらい書かれてそう。 (asdf:oos 'asdf:load-op :cl-ppcre) (set-macro-character #\{ #'(lambda (s c) (let ((args (cl-ppcre:split " " (string-upcase (symbol-name (read s))))) (body (…

shibuya.lisp #2

面白かった。 以下感想だかメモだか良く分からない何か。 会場着 受付で配られた名札がCLのREPLでCLOSなコードだった。 * (defperson :type :Guest :name "youz") #<person ...> * (attend-party-p *) t #|Shibuya.lisp Technical Talk #2|# 懇親会で、構造体ですねーと</person>…

WindowsのSBCLでSBCL_HOME/siteにasdf-install

今までASDFは全く使ってなくて外部ライブラリはCL-PPCREを手動で入れてたくらいなんだけど、明後日のLTにあるcl-irregsexpの予習のためにも使えるようにしてみる。letter: [Common Lisp] Windows の SBCL で asdf-install を動かすにある.sbclrcを 非cygwin…

CLでAO Bench (3)

http://gist.github.com/66945 rayも生成しなおす必要は全く無いなーと思ってちょっと手直し。ついでにoptimize宣言も付けて実行。 Evaluation took: 14.621 seconds of real time 14.562500 seconds of total run time (14.218750 user, 0.343750 system) […

続AO Bench

CLでAO bench - * *scrap* 続き。どうしたら効率的且つスマートに(Lisp的に)書けるかよく分からず、やけくそとばかりに副作用を使いまくって使い捨てvectorを減らしたり無差別に型指定をつっこんだりなどした結果 sbcl 34sec -> 20sec xyzzy 1406sec -> 728s…

CLでAO bench

間違ってたのここだけだった。 (defun clamp (f) (let ((i (* f 255.5))) (cond ((> i 0) 255) ((< i 255) 0) (t (round i))))) これはひどいベンチ結果は Evaluation took: 34.715 seconds of real time 32.491060 seconds of total run time (30.518454 us…

作りかけ

http://lucille.atso-net.jp/aobench/ scheme実装をちら見しつつjs実装をざっくり移植してみたんだけどうまく行かない。 あーどっかで割り算間違えたかなーと思って見直して、明らかに+と*を間違えてるとことか間違ったマクロ定義してる箇所を直したら 見た…

formatメモ

あなごるのFF PP ZZでなんとかkozimaさんに追いつきたいなーと思いながらこの辺を見てた時に気になった機能などをメモ。 capitalize 説明はこの辺 LLGolf Hole2の解説でPythonのtitleメソッドと一緒に紹介されてたのを思い出してPythonのリファレンスを漁っ…

妄想format

format の痒いのに手が届かないところ - kozima の日記 - cadr group 「format の痒いのに手が届かないところ」に挑戦! - 'T - cadr groupelisp風のformatもあればエスケープ地獄は逃れられるかなあという事でsrfi-28を写経&改変して使うという色々と間違っ…

format練習

参考: X, XYZ (anarchy golf) - kozima の日記 - cadr group (defun Y (n) (dotimes (i n) (format t "~V@TY~:[~VTY~;~]~%" (min #2=(floor n 2)i) (<= #2# i) (- n i 1)))) (defun Z (n) (dotimes (i n) (format t (if (> (1- n) i 0) "~VTZ~%" "~*~V@{Z~}~…

とりあえず

あなごるからどう考えてもtimeoutになるネタ。 Koch Island c=[" ","/","\\"] t=[[s=[0,0,0,0],s,s,s], [[0,0,0,1],[1,2,0,2],[2,0,2,1],[1,0,0,0]], [[2,1,2,0],[0,0,1,0],[0,1,0,0],[0,2,1,2]]] def(grow)^(m): (m.map^(l): l.foldl([[],[],[],[]])^(a,e):…

続brainf*ck

CLで無駄に実装3つ書いた。 前のポストのコードの修正版 ジャンプ処理を統合 ごく普通のインタプリタ実装 ふつう リーダーマクロ #^から^までの文字列をBrainf*ckコードとして処理して、テープの最終状態とポインタ位置を多値で返す テープの長さは100固定で…

初brainf*ck

Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~作者: 原悠出版社/メーカー: 毎日コミュニケーションズ発売日: 2008/12/20メディア: 単行本(ソフトカバー)購入: 8人 クリック: 148回この商品を含むブログ (70件) を見るまず付録を読んでから戻っ…

CyanでCLのfind系関数っぽいものを生成するマクロ

定義に使うだけなのでselfの退避先以外の(必要なかった)シンボルは決め打ち。捕捉とかも大丈夫、だと思うけどどうだろう? 引数の取り方もアレだけど定義に使うだけなので以下略 def(Object.equal)^(obj): (.parent == obj.parent) && (self == obj) mac(make…

mapf書いてみる

【どう書く】MDL/Muddleのmapfを作る - 'T - cadr group 殆ど書き上げてからfinal-function省略時にleave, stop使わなかった場合の結果ってどうするんだ? ってことに気付いて初めて仕様書見に行くとかダメすぎる。 (with-gensyms (leave ret stop end) (defu…

shibuya.lisp Techtalk #1

http://shibuya.lisp-users.org/2008/10/15/sltt-1-ust/Willowのゲネプロともろ被りorz ニコ動うpに期待…

sbcl 1.0.21.18

--scriptオプションが追加されたとのことで、CVSから拾ってきて試してみる。 -> Win32用野良ビルド(doc付き) C:\sandbox\cl>sbcl --version SBCL 1.0.21.18 C:\sandbox\cl>sbcl --script palindromic-quine.l This is experimental prerelease support for t…

cutとか

Guacheのリファレンスを眺めてたら便利そうなものを見つけた。 Gauche ユーザリファレンス: 4.3 手続きを作る しかしmacroexpand-1しても良く分からないし、参照実装も殆ど理解できなかったので適当にざっくり書いてみる。 (defun cut-internal (proc exprs-…

#?=

read関数の引数がいけなかったらしい。 (defmacro debug-print (form) (with-gensyms (l v i) `(progn (format t "~&#?= ~S~%" ',form) (let ((,l (multiple-value-list ,form))) (loop for ,v in ,l and ,i = 0 then (1+ ,i) do (format t "~&#?~[-~:;+~] ~…

続・compact-number-list他

畳み込みを使ったコードが出てきてたのを見て、CLで書いてみた。 (defun compact-number-list (x) (reduce #'(lambda(n r) (let ((c (car r))) (if (eql (1+ n) (or (safe-car c) c)) `((,n .,(or (safe-cdr c) c)) ,@(cdr r)) `(,n ,@r)))) `(,@x nil) :fro…

スマートかどうかは置いといて

http://d.hatena.ne.jp/higepon/20080925/1222326246 とりあえずCLで書いてみよう。 (defun compact (nums) (let (result) (labels ((cpush (from end) (push (if (= from end) end (cons from end)) result)) (rec (from end l) (cond ((null l) (reverse (…

CommonLisp勉強会

ログをあさってたら名前が出てきたので寝ボケつつも急遽参加。 しょっぱなからネットストーカー怖っ!と思われそうな自己紹介してた気がするので補足しておくと、xyzzy本読んで奥付見たときに「同い年か!」と感銘を受けた記憶があるのです。On Lispの訳者さ…