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

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

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

levenshtein-distance #4clojure

levenshtein-distance - 猫的怠惰Daysをgolf、というか4clojureに投稿したコードを晒してみる。 (defn levenshtein-distance [x y] (last (reduce (fn [prev j] (reduce (fn [curr i] (conj curr (+ 1 (min (nth prev (+ i 1)) (nth curr i) (- (nth prev i)…

function call expression #anagol

anarchy golf - Function call expression 問題初投稿。JavaScript風の関数呼び出し式をS式へ変換しろというお題。 例. in: f(f(f(f))(f)) out: (f ((f (f f)) f))元のアイディアはParens言語のScheme実装より。普通に文字列置換で解ける事に気付いてなかっ…

:test使い回し

同じ:testを指定するのが面倒 - 'T - cadr group これxyzzyにも欲しいなーと思いつつ、以前scratchでxhr使って遊んでる時にこんな風にパラメータ使い回した事あったなと思いだした。 (member "bar" (delete "foo" (delete-duplicates (copy-list '(delete "f…

Numbering #anagol

Numbering 最初に投稿した108bytesのコード (defun f(n a)(dotimes(i 3)(or(format(> n 0)"~{ ~*~}~{~A~^.~} "a #1=`(,@a,(1+ i)))(f(1- n)#1#))))(f(read)/) (F)とか入ってそうなrepl変数 / が、コマンドライン実行時だとnilのままっていうのは新発見だった…

めりー

CL-USER> (format t"~1{~#T☆~%~}~:*~{~#T~#@*~:*~#@{**~}~#@* ~}~:*~1{~#T** ~}"(make-list(read))) 8 ☆ ** **** ****** ******** ********** ************ ************** **************** ** NIL 元ネタ。~#がCLHS非互換な処理系(clisp, cclなど)だとバグ…

printf

何の役に立つのか分からないけどメモ user=> (printf "%s" "asdf") asdfnil user=> (printf "%s" ["asdf"]) ["asdf"]nil これを踏まえて Google グループ (def s"(def s%s)(printf s(pr-str s))")(printf s(pr-str s)) ダブルクォートをエスケープする為にpr…

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@*…

あなごるにClojure追加

してもらいました。 http://golf.shinh.org/l.rb?cljちょうどActive problemsに他のLisp族だとしんどいと思われるdecimal型数値の計算問題が出てるので遊んでみるとよいと思います。プログラミングClojure作者: Stuart Halloway,川合史朗出版社/メーカー: オ…

迷路189B

http://shinh.skr.jp/m/?date=20100113#p06 http://route477.net/d/?date=20100117#p01を参考にしつつ (map writeb(ccc[loop(= m(drain:readb)w(+(pos 10 m)1)v(+ m)q `((,(pos 83 m),m)))(= p pop.q)(on n `(1 -1,w,-.w)(case(min(v:++ n p.0)m.n)71(_:p 1)…

迷路

人材獲得作戦・4 試験問題ほか: 人生を書き換える者すらいた。 3時間きっちり考えた結果 maze.arc (= m (filechars "~/gists/maze_arc/maze.txt") ; or (drain:readc) w (+ 1 (pos #\newline m)) a (n-of len.m nil) (a:pos #\S m) '(0) d 0 route) (until …

ArcでGolf

もう半月以上経ってるけど祝Arc追加。色々書いてみて気付いた点とか適当に。 special syntax charactors (intrasymbol) 2以前はa.b.c => (a b c), a!b!c => (a 'b 'c)だったけどver 3でa.b.c => ((a b) c), a!b!c => ((a 'b) 'c)に変更。 ++.iが意図通りに展…

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# の変形はエラーになるだろなーとか思ってた。このリーダーマクロを再定…

andf

Google グループ Wanna play golf? (defn filter-collecting [predicate collector & lists] (lazy-seq (loop [lists lists out []] (if (empty? (first lists)) (reverse out) (let [heads (map first lists)] (if (apply predicate heads) (recur (map res…

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))) といった方法も思いついたんだけど短く書けない。 …

hexagon

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

formatメモ

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

初golfからゆるーいネタ。

anarchy golf - happy new year 最初に書いた埋め込みを使わないコード (setq i(read-line)) (format t "happy ~{~A~} new ~A year!" (mapcar (lambda (c) (case c (#\( #\)) (#\) #\() (#\b #\d) (t c))) (reverse(coerce i'list))) i) 折角なのでひっくり…

回文Quine

anarchy golf - Palindromic Quine 355byte->293byte。 (q=^(){ ('r).(=)(^(s, p){ aif(s.readc(), { r(s, it).(+)(p) }, :else { p }) }); ["(q=", q, ")()#)()", r(q.to_s().istring(), "=q(")].map(print) })()#)()} )tnirp(pam.])"(q=" ,)(gnirtsi.)(s_o…

Cyanのリスト操作

リテラルのリストの操作は色々短く書けてよさげ。 Lispとの対応 [a | b] -> (a . b) [a, b] -> (a b) [*a, b] -> `(,@a b) *(Expander)が便利。 cyan> a=[1,2,3] => [1, 2, 3] cyan> [0|a] => [0, 1, 2, 3] cyan> [*a,4] => [1, 2, 3, 4] cyan> b=a.map^(n):…

vネタばれ

http://golf.shinh.org/p.rb?v#Grass grass.el形式で '( (abs rec (f c) ((app succ c . sc) (app w sc . v?) (app v? c) (app 1 f) ;c or f (app 1 1) ;true or f f (app 1 sc) ;(true sc) or (f f sc) (app out 3) ;(out sc) or error )) (app rec rec) (a…

あとで

http://www.shinh.org/p.rb?Palindromic+Quine (format t #1="~%(format t #1=~S #1#(reverse #1#))))#1# esrever(#1# ~S=1# t tamrof(" #1#(reverse #1#))))#1# esrever(#1# "(format t #1=S~ #1#(reverse #1#))))#1# esrever(#1# S~=1# t tamrof(%~"=1# t …

まめさんのGrassでQuineを高速化してみた。

Grass で quine - まめめも まだカラクリの部分がちゃんと読めてないけど、構造は分かってきた。しかしWとvの作り方の時点で真似のできる発想じゃない、というか面白すぎる。ただWとvの出力時に毎回succしてて重い(サイズ削るのを優先してただけかもしれない…

あなごる echo

no errorで32バイトすげー!と思ったら http://d.hatena.ne.jp/kikx/20080907#1220738068 なるほどwww

あなごる v

http://www.shinh.org/p.rb?v#Grass 真面目に足し算してったら既に回答してた人たちの3倍近い打数になっちゃってあるぇー(・ε・)? じゃあPRED使ってみようか、と書き始めてしばらくした所でもっと単純な方法に気付き、書き直したら1位の人を1byte差でかわせ…

あなごる

Grassが追加されてた! (via. http://rubyist.g.hatena.ne.jp/hatecha/20080906/p1) とりあえず、これ以上短くならないだろうと思うnopとechoを投稿。 他にできそうなのは…ASCII from 0x01 to 0x7f と reverse entire inputは似た様な物を書いたから一番乗り…

あなごる reverse entire input

http://www.shinh.org/p.rb?reverse+entire+input echoを改造して wwWWwWWWwv ;2 Wwww ;2succ WWw ;4succ WWWw ;8succ Wwwwwwww ;(8succ w) -> del vw ;main (self) WWWWWWWWWWww ;(in del) -> eof?del:input WWWw ;(del 1) -> eof?true:false Ww ;(1 1) -> …

LLGolf Hole 8

doukaku.org 最初に書いたコード。 (do*((e(read))(i(- e)(1+ i)))((= i e))(dotimes(j(- e(abs i)))(princ"*"))(princ #\NewLine)) 微妙だなあと思って投稿しないでいたらformatを使った回答が。 ;mc #7421(2008-08-27 19:25) [ Common Lisp ] (format t "~…

LLGolf Hole 5

doukaku.org 反射的に投稿してしまった。 (do((a 1)(e(read)))((< e(incf a(expt 10(floor(log(print a)10))))))) expt floor log なんとかならないかなと思ったけど思いつかない。

LL Golf Hole 4

doukaku.org 正規表現使わずに、CLとxyzzyで動くよう解いてみる。 (defun llgolf4 (f) (flet ((p (c) (or (alpha-char-p c) (digit-char-p c)))) (with-open-file (s f) (do ((h (make-hash-table :test #'equal)) (r 0 (1+ r)) (l "" (read-line s nil))) (…

LLGolf Hole 3

doukaku.orgxyzzyでも動くよう、ごく普通に。 ;xyzzy用 ;(defmacro nth-value (n form) ; `(nth ,n (multiple-value-list ,form))) (do*((m 1 (1+ (mod m 12))) (y 2008 (+ y (if (= 1 m) 1 0))) (u 0 (encode-universal-time 0 0 0 13 m y)) (c 0)) ((< 201…

LLFuture

定員1000人なら、ただのミーハーがちょっとくらい紛れ込んでも大丈夫かと思って少し前にチケット買っちゃったんだけど、去年のプログラムを見直したり大物ゲストの発表とか見ると不安になってくる。まあでも折角なので空気読まずに行ってみよう。とりあえず …

Grassでecho

アナゴル2問目のecho wWWWWWwWWWwWWWwwwエラー吐いて終わってもOKならこれでいいんだけど。 ちゃんと書くと wwWWWwwWWwwv wwWWwWWWwv wwWWwWWWwWWWWwv wWWwwwWwwwwwwwWwwwwwwwwwWWWWWWWWWWWwWwwWwWwwwwwwwwwwWwwwwWwwwwwwwww長い。