D言語

プログラミング初心者にオススメのD言語本

プログラミング初心者がD言語を学ぶのに適した本を,俺が実際に読んだことのあるものの中から選んでみました. 1冊目 1冊目はなんでもいいと思うのでとりあえず定番としてTDPLを挙げておきます.The D Programming Language作者: Andrei Alexandrescu出版社/…

D言語会議 01

http://partake.in/events/feac18f7-0b78-4129-92c5-ad0cce8feafb やりました!他の人もブログを書かれているので,探せば見つかると思います(時間があったら上のサイトにコメントとしてまとめておきます.もともと勉強会ではないと明言していたので,まぁ最…

DMD as a Library

ddmdって正直いらないんじゃないかと思ってたけど,インタラクティブ環境をD言語で提供したいと思ったらこれしかないんじゃないかと思えてきた.D言語にevalを入れるのはかなり厳しいし,GSoCでパーサ&レキサの案が出てるけどライブラリとしてどこまで提供す…

職場の自席に置いとくと,スゲーできそうって思われるかもしれない本(D言語編)

The D Programming Language作者: Andrei Alexandrescu出版社/メーカー: Addison-Wesley Professional発売日: 2010/06/02メディア: ペーパーバック購入: 3人 クリック: 212回この商品を含むブログ (5件) を見るD言語の本はこれしかありません ;-(ANDROIDアプ…

C++ 1xについて

C++ Advent Calendar jp 2010の24日目の記事です.世の中ではC++ 0xが旬のようですが,そんな古いのは置いておいてC++ 1xの話をしましょう.C++ 1xはついに破壊的変更が来ます. include to import includeは単なる置換でコンパイルが遅い原因にもなっていま…

D Programming Advent Calender 2010 - 24日目: 使ってはいけない標準モジュール

D Programming Advent Calender 2010の24日目の記事です.ついにここまで来ました.今回の内容はPerlの方であったこの記事のD言語版です.D言語は言語仕様が固定されることはありますが「標準ライブラリはそうではない」とAndreiが述べています.これはつま…

TinySegmenter in D.

分かち書きとかする時はMecabとかが有名なんだけど,手軽にやりたい時には色々と面倒だしバインディングとか用意するのもあれ,ということでTinySegmenterとかいうのを工藤さんが書かれていた.で,なんかいくつかの言語に移植されてたんだけど,D言語にない…

PhobosのBase64

http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/base64.d BoostライセンスでパフォーマンスもあがりRangeをサポートした新しいのを入れました!templateとaliasやmixinを使って好きなBase64フォーマットが作れて,かつtemplate内で完結す…

己のコーディング力に絶望した日

もう少し時間内に思い描いたコードを書けるようになりたいのと,そういや最近文字列処理とかしてなかったなぁと無駄に入力処理で手間取ってしまったという.下のコードは貼るために無駄なimportとか削ったやつです. Ants 蟻さんが竿の上を歩くという問題.…

D言語のtypedef

D言語にはaliasとtypedefがあって,CやC++のtypedefはaliasとなっています.じゃあtypedefは何かというともっと強いもので,違う型を定義します. typedef int NewType; これは一つの売りだったわけですが,もうdeprecatedなものになっています.理由は代替…

Boost勉強会@関西

http://kokucheese.com/event/index/4335/ こんな闇の集会に何故か参加してました!ust : http://www.ustream.tv/recorded/10361134 スライド : http://www.slideshare.net/repeatedly/goodbye-doost 一番真面目な発表になってしまったので,もう少しネタ要…

ファンクタとD言語とdmd

Effective STLを読んで,ファンクタの方が速いよ!みたいな記述があったのでD言語で試してみたら,なんか普通に遅かった.そもそもクロージャとかリテラルで書けるD言語にはファンクタなんかいらないというわけですよ! 以下ソース. import std.stdio, std.…

花札シャッフル

この問題を解くことがあったんだけど,その時はRubyで非常にあれなコードだったので,とりあえずD言語で書き直してみた.やっぱりRubyの方がすっきり書けるというか,std.range周りが色々と融通が効かなくてあばば.Rubyの配列のように扱えるeagerな処理も欲…

デストラクタと静的デストラクタ

今std.socketの改善を試みているのだけど,それで嵌ったところ.これのshared static ~this()のGC.collect()をコメントアウトすると,同じWindowsでもErrorが飛んだり飛ばなかったりする. shared static ~this() { // Avoids FinalizeError. D's GC may cal…

GenericList(of Class) から一定条件の要素を取り除く

http://blogs.wankuma.com/esten/archive/2010/05/26/189409.aspx http://blogs.wankuma.com/episteme/archive/2010/05/26/189421.aspx http://blogs.wankuma.com/masaru/archive/2010/05/26/189423.aspx http://d.hatena.ne.jp/masa-k/20100526/1274883396 …

オープンセミナー2010@岡山

参加してました.去年は昼のLTと夜のLT両方発表者として参加しましたが,今回は夜のLTだけやりました. セミナー 時間が結構タイトで休憩時間が延びたり縮んだりとよく分からない進行でしたが(質疑応答の時間が削られたのは勿体無いかも?),ミニセミナーな…

Phobosのコミッタになりました!

前にMessagePack for Dを書いてると書きましたが,それをd-announceでリリースしたら案外に受けが良く,そのままの勢いでコミッタになりました(@mono_shooさんとなんと同時!).ということで,MessagePack for Dも後ちょっとでなんと,標準ライブラリ入りす…

MessagePack for Dの近況

それなりに整えたので,そろそろアナウンスして公式リポジトリにmergeしたい所.で,MessagePack自体はJSONライクなんだけど,せっかく書いたのにstd.jsonに負けてたら悲しいので簡単な比較してみた(ソースはこれ).pack/unpackはstd.jsonのtoJSON/parseJSON…

MessagePack for D

http://www.bitbucket.org/repeatedly/msgpack4d/src バイナリベースのシリアライゼーションライブラリであるMessagePackのD言語実装を書きました(バインディングでなくPureな実装.他の言語色々あるのにD言語にないのがちょっと虚しかったので).といっても…

enumのネストの需要ってどんな感じなんだろう?

enumってネスト出来たらグルーピングが出来て便利だと思うんだけど enum Spec { enum A { a, b, c } enum B { a, b, c } } みたいな感じで.まぁ今でも現状 class Spec { enum A { a, b, c } enum B { a, b, c } } でそれっぽいこと出来るけどclassが微妙だ…

dmdのtrunkを自動でビルドする(Mac編)

以下のRakefileを使えば出来ます!PLATFORMとか作ってるけど他の環境全然意識してません(Windows以外は動くかも?).せっかく作ったし,D言語友の会にでも後で貼っておくか. 汚いのは勘弁して下さい. パッチ 今のtrunkはspell checkerが入ってwin32.makし…

dmdのスペルチェック

http://www.dsource.org/projects/dmd/changeset/408 こういう変更があったので,trunkから落としてコンパイルして試してみたら こんな感じで間違っていると指摘してくれる(一文字くらいかな?).こういうのってIDEの仕事っぽいけど「それいいね!」と言って…

unittestで最後まで

こういう意見があったので,こんな感じでどうでしょうか! // Written in the D programming language. module testhelper; import std.stdio : write, writeln; private uint failures; static this() { write("Unittest started..."); } static ~this() { …

QuickSilverのあれ

どんなもんかと実装してみた.といってもObjective-Cよく分からなかったので,Ruby版のをベースに.実際速さを求めるなら,本家のようにNSRangeみたいな軽量な構造体使ったり,単一関数の再帰の方が速いかも. なんにせよ,これだけ短いやつであんな探索出来…

タグディスパッチ

タグディスパッチというのがTwitterで出てきたので調べてたら説明が見つかった.ソース見てて何であれでコンパイル通るのかと思ったら「使われない仮引数の名前は省略可能」というのがC++にはあるらしい.で,D言語でも試したら出来た. import std.stdio; v…

ぼくのかんがえたさいきょうすたいる(Dげんごへん)

http://www.digitalmars.com/d/2.0/dstyle.html 基本これに準拠するのだけど違うところだけ. White Space インデントは空白4文字だけ,タブなどいらぬ! Comments 最近 /* This is comment! */ でもいいかなぁと思ってたのだけど,やっぱり /* * This is co…

ベンチマークなモジュール

D言語で気軽に時間測定がしたい 昔書いたコードを引っ張りだしてきた. // Written in the D programming language /** * This module provides a simple benchmark utility. * * Author: $(WEB profile.livedoor.com/repeatedly/, tama) */ module benchmar…

R.I.P foreach_reverse

foreach_reverseが消える.で,通常のRangeはretroで反転できるので何の問題もないけど,opApplyはどうすればいいのん?という. auto myretro(Range)(Range range) { static if (__traits(compiles, range.opApplyReverse)) return &range.opApplyReverse; …

D2本の表紙候補

こんなこと書いておいて,まだ書き始めてませんが(というかまたD2に色々変更が来そう),表紙だけ作ってみました. 夏コミだとこれでも良さそうだけど,電子出版でやろうとするとアウトになりそうですね!

C++には敵わない

http://d.hatena.ne.jp/faith_and_brave/20100205/1265357617 import std.stdio; class Hogeable { Hoge this_; this(ref Hoge hoge) { this_ = hoge; } void opDispatch(string name, T...)(T args) const { writeln("entry : " ~ name ~ "function"); mixi…