exception がないのはいやですが、ソースコードを見た感じでは作りは良さそうなので、ちょっとは使ってみようかと思う。が、all.bash が通りません。いったいどういうリポジトリを公開してるんだか。まあ一部の test に失敗しているだけのようで、しかも test 自体に問題があるような感じではある。
とりあえず go.y を覗いたところ(文法変える気?)、シンプルな感じ。全体的にソースコードはかなりきれい。exceptionがないぐらいで見捨てるのは忍びない。
以下、お約束:
fib.go:
package mainfib.c:
import fmt "fmt" // Package implementing formatted I/O.
func fib(a int) int {
if a==0 {return 0}
if a==1 {return 1}
return fib(a-1)+fib(a-2);
}
func main() {
a := 40;
fmt.Printf("fib(%d) = %d\n", a, fib(a));
}
#include "stdio.h"result:
int fib(int a){
if(a==0) return 0;
if(a==1) return 1;
return fib(a-1)+fib(a-2);
}
int main(int argc, char **argv){
printf("fib(40) = %d\n", fib(40));
}
$ 6g fib.go && 6l fib.6 && time ./6.out気になった点:
fib(40) = 102334155
real 0m2.245s
user 0m2.186s
sys 0m0.017s
$ gcc -O2 fib.c && time ./a.out
fib(40) = 102334155
real 0m2.434s
user 0m2.384s
sys 0m0.014s
- 関数の引数、戻り値の型は省略できないようだ
- if 文の{}は省略できないようだ
- compile 時間は fib だと gcc の方が早い
0 件のコメント:
コメントを投稿