1
0

sample.postiats.txt 965 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // http://www.ats-lang.org/
  2. (* Say Hello! once *)
  3. val () = print"Hello!\n"
  4. //
  5. (* Say Hello! 3 times *)
  6. val () = 3*delay(print"Hello!")
  7. val () = print_newline((*void*))
  8. //
  9. //
  10. (* Build a list of 3 *)
  11. val xs = $list{int}(0, 1, 2)
  12. //
  13. val x0 = xs[0] // legal
  14. val x1 = xs[1] // legal
  15. val x2 = xs[2] // legal
  16. val x3 = xs[3] // illegal
  17. //
  18. //
  19. extern
  20. fun{} f0 (): int
  21. extern
  22. fun{} f1 (int): int
  23. extern
  24. fun{} repeat_f0f1 (int): int
  25. //
  26. implement
  27. {}(*tmp*)
  28. repeat_f0f1(n) =
  29. if n = 0
  30. then f0()
  31. else f1(repeat_f0f1(n-1))
  32. // end of [if]
  33. //
  34. fun
  35. times (
  36. m:int, n:int
  37. ) : int = // m*n
  38. repeat_f0f1 (m) where
  39. {
  40. implement f0<> () = 0
  41. implement f1<> (x) = x + n
  42. }
  43. //
  44. fun
  45. power (
  46. m:int, n:int
  47. ) : int = // m^n
  48. repeat_f0f1 (n) where
  49. {
  50. implement f0<> () = 1
  51. implement f1<> (x) = m * x
  52. }
  53. //
  54. val () =
  55. println! ("5*5 = ", times(5,5))
  56. val () =
  57. println! ("5^2 = ", power(5,2))
  58. val () =
  59. println! ("2^10 = ", power(2,10))
  60. val () =
  61. println! ("3^10 = ", power(3,10))
  62. //