エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

2009-12-01から1ヶ月間の記事一覧

Fizz Buzz by C++

C++

分岐もループもなくして、めんどくさく解いてみる。 #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の戻り値のない関数の戻り値

Lua

入門Luaプログラミングを読んでいると、次のような記述がありました。 関数内にreturn文が存在しない場合は関数の出力がないということなので、nilが戻り値になる、と考えます。 入門Luaプログラミング P.33 「と考えます」が気になったのですが、次のような…

Fizz Buzz by Lua part2

Lua

で、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 Buzz by Haskell part2

もう一段階簡単にする方法をコメントで教えて頂きました。ありがとうございました。 fizz = cycle [ "", "", "Fizz" ] buzz = cycle [ "", "", "", "", "Buzz" ] fizzbuzz = zipWith max (map show [1..]) $ zipWith (++) fizz buzz 大小を比較できる要素か…

オブラブ忘年会2009

一昨日開催された「オブラブ忘年会」に参加してきました。 宴ということで、すでに話の輪ができていて、わたしも会場に着いたそばからビールを頂き。 ビールを飲みつつ、ゆるやかに宴は始まり、まずは10ヶ月前になる冬合宿の報告から。 話を伺いながら、高密…

Fizz Buzz by Haskell

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 もう一段階、簡単になりそうな気…

Fizz Buzz by Lua

Lua

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…

double dispatch by Lua

Lua

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/ バイナリファイル形式パーサージェネレータが欲しい - 言語ゲーム バイナリファイルパーサジェネレータ…