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

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

ねた

FizzBuzzを宣言的に書く、宣言できない場合は宣言っぽく書く

プログラミング Elixir を読んでいます。プログラミングElixir作者: Dave Thomas,笹田耕一,鳥井雪出版社/メーカー: オーム社発売日: 2016/08/19メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見る Elixir プログラミング Elixir の第5章で …

修練がてら DFA をいろんな言語で書いてみた

アンダースタンディング コンピュテーションを読んでいます。アンダースタンディング コンピュテーション ―単純な機械から不可能なプログラムまで作者: Tom Stuart,笹田耕一,笹井崇司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型本…

型システム入門

型システム入門 −プログラミング言語と型の理論−作者: Benjamin C. Pierce,住井英二郎,遠藤侑介,酒井政裕,今井敬吾,黒木裕介,今井宜洋,才川隆文,今井健男出版社/メーカー: オーム社発売日: 2013/03/26メディア: 単行本(ソフトカバー) クリック: 68回この商…

Lispを作ってみる、ただしC++テンプレートで

なんか、こじらせた。 これだけではLispになりませんが、もだった材料はそろうみたいなので、できそうな気がします。たぶん。 #include <iostream> // 等値 template<typename T, typename U> struct Eq { static const bool condition = false; }; template<typename T> struct Eq<T, T> { static const bool con</t,></typename></typename></iostream>…

文字列をリンクトリストにする、ただしC++テンプレートで

C++でテンプレートを使っていると、ときどき、文字列をテンプレートに渡したくなるときがあります。 ですが残念なことに、文字列をテンプレート引数にすることはできません。 // こういうことをやってみたい! (けど、できない) template<const char* S> struct Str { // </const>…

畳み込み、ただしC++テンプレートで

// リンクの終端 struct Nil {}; // 左畳み込みテンプレート template<template<typename, typename> class Operator, typename N, typename Sequence> struct Foldl { static const int value = Foldl< Operator, Operator<N, typename Sequence::head>, typename Sequence::tail >::value; }; // 左畳み込みテンプレ</n,></template<typename,>…

遅延評価if

C++のテンプレートで。 Haskellのばあい 基本に立ち返って、まずはHaskellのばあい。 Haskellは基本的に遅延評価なので、不適切な式が含まれていても評価されないのであれば全体としては正しく評価してくれます。 ここでinfinityを評価してしまうと無限再帰…

C++のtemplateが問題を解く

昨夜は @emattsan さんのLuaとIOの話から始まり、 @crashpon さん交えてアセンブラに寄り道しつつ、最後 @maccha がPrologについて熱く語り、その全てを @torazuka さんが熱心に聞く、という稀有な展開。オイラはその展開自体をメタに楽しんだw— あまのりょ…

Luaの新しいリリース。

このあいだLuaのエントリを書いた翌日に、Lua.orgから新たなリリースがあったことについさっき気がつきました。 情報を共有すべくリンクをはります。 Custom Screen Print T-Shirts, Hats, Hoodies, Baseball Shirts, and Apparel. ずっと眺めていると、なん…

Fibonacci series by C++ without semicolon

ねたにしても風化しかかってますが。思いついたので。 #include <iostream> int main(int, char* []) { if(int n0 = 0) {} else if(int n1 = 1) if(int n2 = 1) if(int i = 0) {} else while( i < 20 && ( std::cout << n1 << std::endl, n2 = n1 + n0, n0 = n1, n1 = </iostream>…

FizzBuzz by C++ without semicolon

C++でもセミコロン無し - How to disappear completely こういうのはどうでしょう? #include <iostream> int main(int i, char* []) { while( (i % 15) == 0 ? std::cout << "FizzBuzz" << std::endl : (i % 5) == 0 ? std::cout << "Buzz" << std::endl : (i % 3) ==</iostream>…

オリンポス・プログラミング

ゴッド・オブジェクトばかりで実装するプログラミング、あるいはそれによって構成されたソフトウェア。 ソフトの変更を依頼したら、またオブジェクトが太った orz 。

まめなのだ

XP祭りの懇親会に差し入れたお酒「まめなのだ」。 わたしの地元、千葉県野田市のお酒です。野田市は全国有数の枝豆産地。同じく野田市といえば醤油のキッコーマン(マンズワイン)が製造販売。度数は8度で、ほんのり甘くて飲みやすい。冷やして飲むとおいしい…