2009-12-01から1ヶ月間の記事一覧
分岐もループもなくして、めんどくさく解いてみる。 #include <iostream> template<int N> struct Fizz { static const bool enabled = false; typedef Fizz<N + 1> next; }; template<int N> struct Buzz { static const bool enabled = false; typedef Buzz<N + 1> next; }; template<> struct Fi</n></int></n></int></iostream>…
入門Luaプログラミングを読んでいると、次のような記述がありました。 関数内にreturn文が存在しない場合は関数の出力がないということなので、nilが戻り値になる、と考えます。 入門Luaプログラミング P.33 「と考えます」が気になったのですが、次のような…
で、Haskellで書いたやり方でLuaで書けないかやってみた。 function cycle(x) return function(x, i) i = i or 0 i = x[i + 1] and i + 1 or 1 return i, x[i] end, x, nil end fizz = coroutine.create(function() for k, v in cycle({ "", "", "Fizz" }) d…
もう一段階簡単にする方法をコメントで教えて頂きました。ありがとうございました。 fizz = cycle [ "", "", "Fizz" ] buzz = cycle [ "", "", "", "", "Buzz" ] fizzbuzz = zipWith max (map show [1..]) $ zipWith (++) fizz buzz 大小を比較できる要素か…
一昨日開催された「オブラブ忘年会」に参加してきました。 宴ということで、すでに話の輪ができていて、わたしも会場に着いたそばからビールを頂き。 ビールを飲みつつ、ゆるやかに宴は始まり、まずは10ヶ月前になる冬合宿の報告から。 話を伺いながら、高密…
fizz = cycle [ "", "", "Fizz" ] buzz = cycle [ "", "", "", "", "Buzz" ] fizzbuzz = zipWith ( \ n s -> if s /= "" then s else (show n) ) [1..] $ zipWith (++) fizz buzz main = mapM_ putStrLn $ take 20 fizzbuzz もう一段階、簡単になりそうな気…
fizzbuzz = { [0] = "Fizz Buzz", [3] = "Fizz", [5] = "Buzz", [6] = "Fizz", [9] = "Fizz", [10] = "Buzz", [12] = "Fizz", print = function(self, i) print(self[i % 15] or i) end } for i = 1, 15 do fizzbuzz:print(i) end 実行結果。 1 2 Fizz 4 Buz…
module("message", package.seeall) FOO = 1 BAR = 2 BAZ = 3 ALPHA = 1 BETA = 2 GAMMA = 3 -- NULLメッセージ(インタフェースはあるが中身がないメッセージ)をつくる function create_null_message() local result = { protocol = "null", type = "null"…
あとでよく読む。 バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi http://code.google.com/intl/ja-JP/apis/protocolbuffers/ バイナリファイル形式パーサージェネレータが欲しい - 言語ゲーム バイナリファイルパーサジェネレータ…