関数宣言

数値と文字列を受け取って数値を返す関数の定義を書くとしたらどう書いたほうがベターか
Pascal系とC系のちゃんぽんみたいな構文定義を使っていたけど
関数呼び出しにカッコを使わないパーサを書いたら、なんとなく関数定義にカッコを書くのがダルくなった


とりあえず覚えているのを書き出す

bash

function f()
{
	local x=$1
	local y=$2
	return x
}

Haskell

f :: Integer -> String -> Integer
f x y = x

C系

int f(int x, char *y)
{
	return(x);
}

VB

Function f(ByVal x As Integer, ByVal y As String) As Integer
	Return x
End Function

Perl

sub f()
{
	my($x, $y) = @_;
	return($x);
}

Python

def f(x, y):
	return x

Ruby

def f(x, y)
	x
end

Lisp

(define (f x y)
	x
)

Caml

let rec f x y = x

Pascal

function f(x: Integer; y: String): Integer
begin
	f := x
end;

Transact-SQL

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

うーん、イマイチ・・・