二項演算子つくるときはこう
let ( ここに演算子にしたい文字列を書く ) 引数1 引数2 = 結果
単項はこう
let ( ここに演算子にしたい文字列を書く ) 引数1 = 結果
二項演算子の場合、最初に使える文字は
-
-
-
- /
- =
- <
-
- &
- |
- ^
です。
単項演算子の場合
- !
だけです。
2文字目以降には
-
-
-
- /
- ^
- &
- |
- !
- :
- =
- <
-
- ~
- '
- .
- ?
が使えます。
例: リストの先頭に要素を追加する演算子>>
を定義する
@require: stdja
@require: list
let ( >> ) x lst = x :: lst
let-inline \dump lst =
let d = lst |> List.fold-left (fun acc n -> acc ^ (arabic n) ^ `;`) ` ` in
embed-string (`[` ^ (string-sub d 0 ((string-length d) - 1)) ^ `]`)
in
document (|
author = { Seiei MIYAGI };
show-title = true;
show-toc = false;
title = { SATySFiで演算子定義 }
|) '<
+p {
\dump(1 >> 2 >> 3 >> []);
}
>
結果
例: ネコにしゃべらせる単項演算子!>^..^<
を定義するにゃん
@require: stdja
let ( !>^..^< ) s = {\>^..^\< .o( #s;にゃん )}
let message = !>^..^< { ねむ }
in
document (|
author = { Seiei MIYAGI };
show-title = true;
show-toc = false;
title = { SATySFiで演算子定義 }
|) '<
+p { #message; }
>