Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. #|
  2. Hat言語のサンプルコード集
  3. それぞれの入力例に従って実行してください。
  4. |#
  5. ( include "util.sch" )
  6.  
  7. #|
  8. コマンド引数の出力
  9. 入力例
  10. 3ple.sch 7 3
  11. |#
  12. ( defineCPS main ^(args)
  13. print(args "\n") )
  14.  
  15. #|
  16. リストの多値返却
  17. 入力例
  18. -e main2 3ple.sch 7 3
  19. |#
  20. ( defineCPS main2 ^(args)
  21. print("Start\n")^()
  22. fix( ^(loop seq . break)
  23. if(seqEnd? seq) break ^()
  24. seqGet seq ^(a rest)
  25. print(a "\n")^()
  26. loop rest
  27. )(listSeq args)^()
  28. print("End\n")
  29. )
  30.  
  31. #|
  32. 文字列から数値への変換
  33. 入力例
  34. -e main3 3ple.sch 7 3
  35. |#
  36. ( defineCPS main3 ^(args)
  37. listToValues args ^(a)
  38. stringToNumber a ^(a)
  39. stringToNumber b ^(b)
  40. gcd a b ^(c)
  41. print(c "\n") )
  42.  
  43. ( defineCPS main6 ^(args)
  44. print("Start\n")^()
  45. fix( ^(loop S sum . break) sum ^(sum)
  46. ;; debugPrint "break=" break ^()
  47. ;; debugPrint "sum=" sum ^()
  48. seqGet S ^(v s)
  49. ;; debugPrint "s=" s ^()
  50. seqEnd? s ^(flag)
  51. ;; debugPrint "flag=" flag ^()
  52. if flag (break sum)^()
  53. ;; debugPrint "v=" v ^()
  54. loop s (+ sum v)
  55. )(filterSeq
  56. stringToNumber
  57. (listSeq args)) 0 ^(sum)
  58. print("Sum=" sum "\n")^()
  59. print("End\n")
  60. )
  61.  
  62. #|
  63. 多値返却(複数の戻り値)の例
  64. 商と余りを求める。
  65. -e main4 3ple.sch
  66. |#
  67. ( defineCPS main4 ^(args)
  68. listToValues args ^(a b)
  69. stringToNumber a ^(a)
  70. stringToNumber b ^(b)
  71. divMod a b ^(d m)
  72. print(d " ... " m "\n") )
  73.  
  74. #|
  75. 多値を一つずつ取り出す例
  76. |#
  77. ( defineCPS main5 ^(args)
  78. listToValues args ^(a b)
  79. stringToNumber a ^(a)
  80. stringToNumber b ^(b)
  81. divMod a b ^(d . r)
  82. seqGet r ^(m)
  83. print(d " ... " m "\n") )
  84.  
  85. ( defineCPS main7 ^(args . return)
  86. print("start main\n")^()
  87. seqGetEx (print("error\n") . return)^(get)
  88. ;; stringList2numberSeq args ^(seq)
  89. ;; filterSeq I (listSeq args) ^(seq)
  90. listSeq args ^(seq)
  91. debugPrint "main seq=" seq ^()
  92. get seq ^(a seq)
  93. get seq ^(b seq)
  94. print(a "+" b "=" c "\n")^()
  95. + a b ^(c)
  96. print(a "+" b "=" c "\n")^()
  97. print("end main\n")^()
  98. return )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement