「:」を引数の名前と型の間に入れられるようしたりにする魔改造

とある言語が

func halfOpenRangeLength(start: Int, end: Int) -> Int {
    return end - start
}
println(halfOpenRangeLength(1, 10))
// prints "9"

のような文法だったのを見てウッと思ったのでやってみた

Go のソースを落としてきて

を当てて

$ (cd src/cmd/gc && rm y.tab.h && make)

とする。

package main

type Int int

func halfOpenRangeLength(start: Int, end: Int) -> Int {
	return end - start
}

func main() {
	println(halfOpenRangeLength(1, 10))
	// prints "9"
}
$ go run test.go
9

どーん