誰得ボールZ

F#には、独自サフィックスを定義する機能がある。
今が旬の、誰にも使われない超マイナー機能。


例えば、以下のように定義すると「Z」というサフィックスが有効になる。
どこか懐かしい、胸がパチパチするようなサフィックス
ちなみに、サフィックスとして使用できる文字は「Q, R, Z, I, N, G」のみです。
モジュールも関数も名前が重要だそうです。


module NumericLiteralZ =
let FromZero () = "(´・_・`) バイバイ、天さん・・・"

let FromOne () = "◯"

let FromInt32 = function
| n when (n >= 7) -> "いでよ神龍!🐲"
| n -> String.replicate (max 1 n) "◯"

実行例:
> 1Z ;;
val it : string = "◯"
> 6Z ;;
val it : string = "◯◯◯◯◯◯"
> 7Z ;;
val it : string = "いでよ神龍!🐲"


ちょっと前に仕事でサフィックスの話が出ていたので、思い出したついでに書いてみました。

まとめ

使い道を教えて下さい。(衝撃