2015-01-01から1年間の記事一覧

使いたくない型を見えなくする #FsAdvent

F#

この記事はF# Advent Calendar 2015 - connpassの2日目です。 同僚へのイタズラネタを紹介したいと思います。 AutoOpenと組み合わせて混乱に陥れてやりましょう。 標準ライブラリの中には、古くなったり、挙動が紛らわしいという理由で使うべきではないクラ…

モジュールのアクセシビリティ管理を手抜きする

F#

F# には、モジュール内の要素(型、関数)のアクセシビリティを指定するには、2つの方法があります。 シグネチャファイルを使う 非公開要素毎に internal / private を指定する シグネチャファイルは、型名のみ公開しメンバは隠すなど、柔軟にアクセシビリ…

実行時にCompiledNameが付いた型の元の名前を取得する

F#

正確には実行時じゃないけど解決したのでメモ 元ネタ: http://ja.stackoverflow.com/questions/6177/compilednameが付いた型のf-での名前を取得したい 問題 F#では、CompiledNameAttributeを付けた型は、リフレクションで元の名前を取得できません。 [<CompiledName("Piyo")>] type</compiledname("piyo")>…

F# Puzzle 2

F#

問題 次のコードは何が出力されるでしょうか? let toUpper (x: string) -> x.ToUpper() if true then "hoge" else "piyo" |> toUpper

F# Puzzle

F#

問題 次のコードで何が出力されるでしょうか? 軽量構文を使ってます! [ for x in [ 1; 2; ] do for y in [ 10; 20; ] do yield x + y for z in [ 100; 200; ] do yield z ]