fork download
  1. // 関数定義
  2. int add2(int a, int b) {
  3. return a + b;
  4. }
  5.  
  6. // 可変長引数を持つ関数定義
  7. int sum(int ... rest) {
  8. int x = 0;
  9. foreach (rest, int n) {
  10. x+= n;
  11. }
  12. return x;
  13. }
  14.  
  15. // 再帰的呼び出し
  16. int factorial(int n) {
  17. if (n == 0) {
  18. return 1;
  19. } else {
  20. return n * factorial(n - 1);
  21. }
  22. }
  23.  
  24. // 暗黙のラムダ
  25. int times(int n, function block) {
  26. for (int i = 0; i < n; i++)
  27. block();
  28. return n;
  29. }
  30.  
  31. int main() {
  32. // 関数の呼び出し
  33. int result = add2(2, 3);
  34. //=> 実行結果: result = 5
  35.  
  36. array(int) ary = ({32, 16});
  37. result = add2(@ary);
  38. //=> 実行結果: result = 48
  39.  
  40. result = sum(1, 2, 3);
  41. //=> 実行結果: result = 6
  42.  
  43. ary = ({ 1, 2, 4, 8 });
  44. result = sum(@ary);
  45. //=> 実行結果: result = 15
  46.  
  47. result = factorial(5);
  48. //=> 実行結果: result = 120
  49.  
  50. int x = 0;
  51. times(3) {
  52. write("Hello world! <%d>\n", x++);
  53. };
  54. //=> 実行結果:
  55. //=> Hello world! <0>
  56. //=> Hello world! <1>
  57. //=> Hello world! <2>
  58.  
  59. return 0;
  60. }
Success #stdin #stdout 0.05s 6636KB
stdin
Standard input is empty
stdout
Hello world! <0>
Hello world! <1>
Hello world! <2>