関数定義
関数定義に予約語を用いるか
多くの言語ではそう
Python
def
Rust
fn
Nim
proc, method, func
TypeScript
function, const
Haskellは、全部関数なのでわざわざ予約語が用意されていない
code:mud
fun 関数名: 型 -> 型 = { ... }
# 関数定義;2変数
fun add : Int -> Int -> Int = x y -> x + y
Haskell風で良い感じだけど、引数の数が増えると、引数とその型が離れていき読みにくくなる
code:mud
fun sum : Int -> Int = {
1 -> 1
n -> n + sum (n-1)
}
code:rytl
// 構想
Int -> String
fizzbuzz n:= Int -> String
match mod n
15 => "fizzbuzz"
3 => "fizz"
5 => "buzz"
_ => String n
code:rytl
// 構想
Int -> Int
fib := match =>
0 => 0
1 => 1
n => fib(n-1) + fib(n-2)
微妙に関係ないが
今も健在かわからないが、Swiftにこんな文法があった ref code:swift
animator.addCompletion {_ in
kao.bounds = CGRect(x: 0, y: 0, width: 70, height: 70)
}
animator.startAnimation()
実際どうなのかわからんが、関数の引数にブロックをかけるのだろうか