repo.or.cz
/
parrot.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
tagged release 0.7.1
[parrot.git]
/
languages
/
lolcode
/
src
/
builtins
/
math.pir
blob
e76832fac29e7c827f36386b7d9b9fd5f91f2417
1
.sub 'SUM OF'
2
.param pmc x
3
.param pmc y
4
$P0 = n_add x, y
5
.return ($P0)
6
.end
7
8
.sub 'DIFF OF'
9
.param pmc x
10
.param pmc y
11
$P0 = n_sub x, y
12
.return ($P0)
13
.end
14
15
.sub 'PRODUKT OF'
16
.param pmc x
17
.param pmc y
18
$P0 = n_mul x, y
19
.return ($P0)
20
.end
21
22
.sub 'QUOSHUNT OF'
23
.param pmc x
24
.param pmc y
25
$P0 = n_div x, y
26
.return ($P0)
27
.end
28
29
.sub 'MOD OF'
30
.param num x
31
.param num y
32
$N0 = mod x, y
33
.return ($N0)
34
.end
35
36
.sub 'BIGGR OF'
37
.param pmc x
38
.param pmc y
39
$I0 = islt x, y
40
if $I0 goto y_biggr
41
.return (x)
42
y_biggr:
43
.return (y)
44
.end
45
46
.sub 'SMALLR OF'
47
.param pmc x
48
.param pmc y
49
$I0 = isgt x, y
50
if $I0 goto y_smallr
51
.return (x)
52
y_smallr:
53
.return (y)
54
.end
55
56
.sub 'FAKTORIAL OF'
57
# Get input parameter.
58
.param int n
59
60
# return (n > 1 ? n * factorial(n - 1) : 1)
61
.local int result
62
63
if n > 1 goto recurse
64
result = 1
65
goto return
66
67
recurse:
68
$I0 = n - 1
69
result = 'FAKTORIAL OF'($I0)
70
result *= n
71
72
return:
73
.return (result)
74
.end
75
76
# Local Variables:
77
# mode: pir
78
# fill-column: 100
79
# End:
80
# vim: expandtab shiftwidth=4 ft=pir:
81