2014-04-27 48 views
1

我試着編寫並運行我的第一個nimrod程序fizzbuzz。Nimrod Beginner - Fizzbuzz - 編譯並運行

Nimrod是從git安裝的,版本是。

[sayth nimrod]$ nimrod --version 
Nimrod Compiler Version 0.9.4 (2014-04-28) [Linux: amd64] 
Copyright (c) 2006-2014 by Andreas Rumpf 

因此,這裏是一個fizzbuzz

proc fizzBuzz(x, y: int) = 
     for i in x .. y: 
       if i mod 15 == 0: 
         echo("FizzBuzz") 
       elif i mod 3 == 0: 
         echo("Fizz") 
       elif i mod 5 == 0: 
         echo("Buzz") 
       else: 
         echo(i) 

我編譯爲C(有沒有更好的選擇嗎?)和它似乎挺合我意。

[sayth nimrod]$ nimrod c fizzbuzz.nim 
config/nimrod.cfg(37, 2) Hint: added path: '/home/sayth/.babel/pkgs/' [Path] 
Hint: used config file '/home/sayth/Nimrod/config/nimrod.cfg' [Conf] 
Hint: system [Processing] 
Hint: fizzbuzz [Processing] 
fizzbuzz.nim(1, 5) Hint: 'fizzbuzz.fizzBuzz(x: int, y: int)' is declared but not used [XDeclaredButNotUsed] 
gcc -c -w -I/home/sayth/Nimrod/lib -o /home/sayth/Scripts/nimrod/nimcache/fizzbuzz.o /home/sayth/Scripts/nimrod/nimcache/fizzbuzz.c 
gcc -c -w -I/home/sayth/Nimrod/lib -o /home/sayth/Scripts/nimrod/nimcache/stdlib_system.o /home/sayth/Scripts/nimrod/nimcache/stdlib_system.c 
gcc -o /home/sayth/Scripts/nimrod/fizzbuzz /home/sayth/Scripts/nimrod/nimcache/stdlib_system.o /home/sayth/Scripts/nimrod/nimcache/fizzbuzz.o -ldl 
Hint: operation successful (8181 lines compiled; 1.065 sec total; 13.138MB) [SuccessX] 

但運行它不產生輸出。有什麼我做錯了嗎?

[sayth nimrod]$ ./fizzbuzz 
[sayth nimrod]$ 

回答

6

你只是忘了叫它。注意編譯器提示:

fizzbuzz.nim(1, 5) Hint: 'fizzbuzz.fizzBuzz(x: int, y: int)' is declared but not used [XDeclaredButNotUsed]

沒有,你最好的選擇是編譯到C有可能在未來的LLVM後端,但普遍的看法是,它是更多的麻煩比它的價值。中級C輸出更具可移植性(gcc可以運行在比LLVM更多的平臺上),您可以選擇最適合您的代碼的編譯器。