Skip to content

Commit 33a3c47

Browse files
author
梶塚太智
committed
Create standard library
1 parent 1c6905e commit 33a3c47

File tree

3 files changed

+103
-0
lines changed

3 files changed

+103
-0
lines changed

library/japanese.stk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#--------------------+
2+
| Stackプログラミング言語 |
3+
| 日本語変換ライブラリ  |
4+
+--------------------#
5+
6+
(
7+
(code) var code
8+
(足す) (add) replace
9+
(引く) (sub) replace
10+
(もし) (if) replace
11+
(くっつける) (concat) replace
12+
(評価する) (eval) replace
13+
(繰り返す) (repeat) replace
14+
) (japanese) var

library/log.stk

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#--------------------+
2+
| Stackプログラミング言語 |
3+
| ログ表示ライブラリ |
4+
+--------------------#
5+
6+
[] (log-list) var
7+
8+
( #情報ログを出力#
9+
(msg) var
10+
([INFO] msg)
11+
(msg) msg replace
12+
copy print
13+
log-list swap append
14+
(log-list) var
15+
(msg) free
16+
) (log-info) var
17+
18+
( #警告ログを出力#
19+
(msg) var
20+
([!WARNING!] msg)
21+
(msg) msg replace
22+
copy print
23+
log-list swap append
24+
(log-list) var
25+
(msg) free
26+
) (log-warn) var
27+
28+
29+
( (name) var
30+
log-list name write-file
31+
) (save) var

library/math.stk

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#--------------------+
2+
| Stackプログラミング言語 |
3+
| 数学標準ライブラリ |
4+
+--------------------#
5+
6+
( #絶対値を求める#
7+
(num) var
8+
num (-) () replace
9+
(number) cast
10+
(num) free
11+
) (abs) var
12+
13+
( #リストの合計を求める#
14+
(array) var
15+
array (i) (
16+
i total add (total) var
17+
) for
18+
total
19+
(array) free
20+
(i) free
21+
(total) free
22+
) (sum) var
23+
24+
( #リストの平均を求める#
25+
(array) var
26+
array sum eval
27+
array len div
28+
(array) free
29+
) (average) var
30+
31+
( #素数か判定する#
32+
(number) var
33+
2 (i) var
34+
true (flag) var
35+
36+
( (false (flag) var)
37+
(true (flag) var)
38+
number 2 less if
39+
) (
40+
(false (flag) var)
41+
(
42+
(
43+
(
44+
false (flag) var
45+
) ()
46+
number i mod 0 equal if
47+
48+
i 1 add (i) var
49+
)
50+
(i number 0.5 pow 1 add less flag and) while
51+
) number 2 mod 0 equal number 3 mod 0 equal or if
52+
) number 4 less if
53+
flag
54+
(flag) free
55+
(number) free
56+
(i) free
57+
)
58+
(prime?) var

0 commit comments

Comments
 (0)