Amosapientiam

備忘録

プログラミング

C#で型安全なBuilderパターン

Builderパターン とは、オブジェクト生成に用いられるデザインパターンです。必要な引数のみをメソッドチェーンで渡してオブジェクトを生成し、コンストラクタが多くの引数を取り、また省略可能な引数が多いときに有効とされています。 今までにさまざまな言…

F*(F Star)の複雑な型システムの何が嬉しいのか?

マイクロソフトが開発中のF* という依存型プログラミング言語を少し触ってみました。 この言語には強力で複雑な型システムが組み込まれています。 現状、依存型言語は世間にはあまり広まっていませんので F*とは? 複雑な型ってなんだろう? 複雑な型システ…

型で仕様を表す

整数を受け取って整数を返す関数のつもりで、私が以下の関数を書いたとします。 // 仕様:この関数は整数を受け取って整数を返す関数だよ! let my_clever_function x = "hello!" 上のプログラムは当然コンパイルできますし、私は仕様どおり正しい実装を書け…

Totally Runcible

There is an article in QiitaIt gives us no lore incognitaWe call it the poemThe verse is just flowingAh Poet! You earn views like a cheetah! 参考記事 所感や私感を「ポエム」と呼ぶのをやめろ

LINQ遅くなさそう

注意 きちんとしたテストをしようと思ったのですが、途中でめんどくさくなりました。 条件を揃えたりILを読んだりしてないので余り意味はないかもしれませんが、結果だけここにおいときます。 結論 きちんとわかったこと とくにないです なんとなく思ったこ…

TeXの発音をWikipediaで調べてみた

TL; DR 英語のように[tek]と発音する言語よりも、[tex] ([x]は喉の奥から出す「フ」の音)と発音する言語が2倍以上多い(ウィキ調べ) 前置き gfn氏による関数型組版システム、SATySFiが話題になっている。 GitHub - gfngfn/SATySFi: A statically-typed, funct…

C#でC++のcinっぽいの

作った。 class cin { private static Queue<string> tokens; static cin () { string line; tokens = new Queue<string> (); while ((line = Console.ReadLine ()) != null) { foreach (var token in line.Split (' ')) { tokens.Enqueue (token); } } } public static impl</string></string>…