Golf

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 なんとかならないかなと思ったけど思いつかない。