関数宣言
数値と文字列を受け取って数値を返す関数の定義を書くとしたらどう書いたほうがベターか
Pascal系とC系のちゃんぽんみたいな構文定義を使っていたけど
関数呼び出しにカッコを使わないパーサを書いたら、なんとなく関数定義にカッコを書くのがダルくなった
とりあえず覚えているのを書き出す
function f() { local x=$1 local y=$2 return x }
f :: Integer -> String -> Integer f x y = x
C系
int f(int x, char *y) { return(x); }
Function f(ByVal x As Integer, ByVal y As String) As Integer Return x End Function
sub f() { my($x, $y) = @_; return($x); }
def f(x, y): return x
def f(x, y) x end
Lisp系
(define (f x y) x )
Caml
let rec f x y = x
function f(x: Integer; y: String): Integer begin f := x end;
create function f ( @x int, @y varchar(50) ) returns int begin return @x end
いつも使っていたのはこうだけど
sub f(x: Int, y: String) Int { return(x); }
ここからカッコを外すとすごい違和感がある
fの後にイコール入れたほうがましかも
引数と戻り値の間に区別入れたいからアロー演算子みたいなのを入れて
sub f = x:Int y:String => Int return x
うーん、イマイチ・・・