Church Numerals in ski
Submit
Language is selected by the extension of the file. See the list of supported languages to know the extension of your language.
Problem
Convert from Church numerals in unlambda style SKI combinators to decimal.
` = apply
s = \xyz.xz(yz)
k = \xy.x
i = \x.x
0 = \fx.x
1 = \fx.fx
2 = \fx.f(fx)
3 = \fx.f(f(f(x)))
...
See also:
http://en.wikipedia.org/wiki/Church_encoding
http://esoteric.sange.fi/essie2/download/lazy-k/
Test cases generated using lazier from lazy-k. Sorry for the large number of test cases, might make it hard for slow languages to compute in time (takes about 0.4 seconds each in ruby using a naive approach), but needed to stop embedded solutions.
Options
exec is denied
now post-mortem time, all source codes will be revealed
Sample input:_
``s``s`ksk``s`k``s``s`kski``s``s`ksk```s``siii``s``s`kski
``s``s`ksk```s``siii``s``s`kski
```sii``s``s`kski
``s``s`ksk``s`k``s``s`kski``s``s`ksk```sii``s``s`kski
```s``s`kski``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k``s``s`kski``s``s`ksk``s``s`kski
```s``s`kski``s``s`ksk``s``s`kski
``s``s`kski
i
````s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski`s``s`ksk```s``siii``s``s`kski
```s``s`kski``s``s`ksk```sii``s``s`kski
`ki
``s``s`ksk```s``s`kski``s`k``s``s`kski``s``s`ksk``s``s`kski
``s``s`ksk``s``s`ksk``s``s`ksk```sii``s``s`ksk``s``s`kski
```s``siii``s``s`kski
``s``s`ksk``s``s`ksk``s``s`ksk```s``siii``s``s`kski
```s``s`ksk``s``s`kski``s``s`kski
``s`k``s``s`kski``s``s`ksk```s``siii``s``s`kski
``s`k```sii``s``s`kski``s``s`ksk```sii``s``s`kski
``s``s`ksk```sii``s``s`ksk``s``s`kski
``s``s`ksk```sii``s``s`kski
``s`k```sii``s``s`kski``s`k``s``s`kski``s``s`ksk``s``s`kski
`````sii``s``s`kski`s``s`ksk```sii``s``s`ksk``s``s`kski
``s``s`ksk``s`k``s``s`ksk``s``s`kski```sii``s``s`kski
``s`k``s``s`kski``s``s`ksk``s``s`ksk``s``s`ksk```s``siii``s``s`kski
``s``s`ksk```s``s`kski``s``s`ksk```sii``s``s`kski
``s`k``s``s`kski``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k``s``s`kski``s``s`ksk``s`k``s``s`kski``s``s`ksk```sii``s``s`kski
````s``s`ksk```sii``s``s`kski`s``s`ksk```s``siii``s``s`kski
``s``s`ksk``s``s`ksk```s``siii``s``s`kski
``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`ksk``s``s`ksk```s``siii``s``s`kski
``s`k``s``s`ksk``s``s`kski```sii``s``s`kski
``s`k``s``s`ksk```sii``s``s`kski```s``s`ksk``s``s`kski``s``s`kski
``s``s`ksk``s`k``s``s`kski```s``siii``s``s`kski
``s`k``s``s`ksk``s``s`kski``s``s`ksk```sii``s``s`kski
```sii``s``s`ksk``s``s`kski
``s``s`ksk``s``s`kski
``s``s`ksk``s``s`ksk```sii``s``s`ksk``s``s`kski
``s`k``s``s`kski```s``siii``s``s`kski
``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k``s``s`kski``s``s`ksk```sii``s``s`kski
Sample output:
35
17
4
11
36
6
9
2
1
23
25
0
37
30
16
19
8
34
20
28
5
24
31
13
38
26
14
22
21
18
39
12
40
33
15
27
3
29
32
7
10
Sample input:_
``s``s`ksk``s``s`ksk``s``s`ksk``s``s`kski
```sii```sii``s``s`kski
``s`k``s``s`ksk``s``s`kski``s`k``s``s`kski```s`s``s`ksk``sii``s``s`kski
``s``s`ks``s``s`ks``s`kk``s`k```s`s``s`ksk``sii``s``s`kski``s`k`s`k`si``s`k`s`kk``s`k`sik`kk`k`ki
`````s``s`ksk```sii``s``s`kski``si`k``s``s`ks``s`k`s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk``s`k`s``s`kskk`k`s``s`ksk``s``si`ki`kik
`````s``s`kski```s``s`ksk``s``s`kski``si`k``s``s`ks``s`k`s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk``s`k`s``si`k`s``s`kskk`k`s``s`ksk``s``si`k`ki`kik
```````kkkkkkki
``s`k`ki``s``s`ksk```sii``s``s`kski
`````s``s`kski```s``s`ksk``s``s`kski``si`k``s``s`ks``s`k`s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk``s`k`s``s``s``s`kski`k`s``s`kskk`k`s``s`ksk``s``si`k`ki`kik
``````s``s`ksk``s``s`kski``s``s`kski``si`k``s``s`ks``s`k`s`k``s``s`ks``s`kk``s`ks``s`k`sik`kk``s`k`s``si`k`s``s`kskkk``s``si`ki`kik
``s`k`ki````s``s`ksk``s``s`kski`s``s`ksk``s``s`ksk``s``s`kski
``s``s`ksk````s``s`kski`s``s`ksk``s``s`kski
``s`k``s``s`kski````s``s`ksk``s``s`kski`s``s`ksk`ki
``s`k``s``s`kski``s``s`ksk`ki
``s`k``s``s`ksk``s``s`kski````s``s`kski`s``s`kski
````s``s`ksk``s``s`kski`s``s`ksk``s``s`kski
``s`k``s``s`ksk``s``s`kski``s`k``s``s`kski`ki
``s`ki``s`kii
``s`k`ki````s``s`kski`s``s`ksk``s``s`kski
``s`ki````s``s`kski`s``s`kski
Sample output:
5
256
384
63
120
21
0
0
91
55
0
5
6
2
9
5
0
1
0
3
Sample input:_
`````s``s`kski``s``s`ksk``s``s`kski`s``s`ksk``s`k``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski``s``s`ksk```sii``s``s`kski
`````s``s`kski``s``s`ksk``s``s`kski`s``s`ksk````s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski`s``s`ksk```s``s`kski``s``s`ksk``s``s`kski
``s`k``s`k``s``s`kski``s``s`ksk``s``s`kski``s`kii
````s``s`ksk``s``s`kski`s``s`ksk```s``s`kski``s``s`ksk``s``s`kski
````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk````s``s`ksk```sii``s``s`kski`s``s`ksk``s``s`kski
````s``s`kski`s``s`ksk````s``s`kski`s``s`ksk```s``s`ksk``s``s`kski``s``s`kski
````s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski`s``s`ksk``s`k```s``s`kski``s``s`ksk``s``s`kski`ki
``s`k```sii``s``s`kski`````sii``s``s`kski`s``s`ksk``s``s`kski
``s`k```s``s`kski``s``s`ksk``s``s`kski````s``s`ksk``s``s`kski`s``s`ksk``s``s`kski
``s`ki````s``s`ksk```sii``s``s`kski`s``s`ksk``s``s`ksk``s``s`kski
````s``s`ksk```sii``s``s`kski`s``s`ksk``s`k```s``s`kski``s``s`ksk``s``s`kski``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k``s``s`ksk```sii``s``s`kski``s`k```s``s`ksk``s``s`kski``s``s`kski``s``s`kski
``s`k``s``s`kski``s`k```s``s`kski``s``s`ksk``s``s`kski``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k```s``s`ksk``s``s`kski``s``s`kski````s``s`kski`s``s`kski
``s`k``s``s`ksk``s``s`kski`````sii``s``s`kski`s``s`ksk```sii``s``s`kski
`````sii``s``s`kski`s``s`ksk``s`k`ki``s``s`ksk``s``s`kski
````s``s`kski`s``s`ksk``s`k``s``s`ksk```sii``s``s`kskii
````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk``s``s`ksk``s``s`kski
``s`k```sii``s``s`kski``s``s`ksk``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s``s`ksk``s`k```s``s`ksk``s``s`kski``s``s`kski``s``s`ksk```sii``s``s`kski
`````s``s`ksk``s``s`kski``s``s`kski`s``s`ksk`````s``s`kski``s``s`ksk``s``s`kski`s``s`ksk`ki
``s`k``s``s`ksk```sii``s``s`kski````s``s`ksk```sii``s``s`kski`s``s`ksk`ki
``s`k```s``s`kski``s``s`ksk``s``s`kski``s`k```sii``s``s`kski``s``s`ksk``s``s`kski
````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk`ki
``s`k`ki````s``s`ksk```sii``s``s`kski`s``s`ksk```s``s`ksk``s``s`kski``s``s`kski
``s`k```s``s`kski``s``s`ksk``s``s`kski`````s``s`ksk``s``s`kski``s``s`kski`s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k``s``s`ksk```sii``s``s`kski``s`k``s``s`ksk```sii``s``s`kski```sii``s``s`kski
``s`ki``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`ki````s``s`ksk``s``s`kski`s``s`ksk```sii``s``s`kski
`````s``s`kski``s``s`ksk``s``s`kski`s``s`ksk````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk``s``s`ksk``s``s`kski
````s``s`kski`s``s`ksk````s``s`ksk``s``s`kski`s``s`ksk``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski
``s`k```s``s`kski``s``s`ksk``s``s`kski``s``s`ksk``s`k``s``s`kski``s``s`ksk``s`k``s``s`kski```sii``s``s`ksk``s``s`kski
`````s``s`kski``s``s`ksk``s``s`kski`s``s`ksk````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk``s``s`ksk```sii``s``s`kski
``s`k``s``s`ksk``s``s`kski``s``s`ksk`ki
``s`k``s`k``s``s`kski``s``s`ksk``s``s`kski``s`k```s``s`kski``s``s`ksk``s``s`kski```s``s`ksk``s``s`kski``s``s`kski
``s`k`ki``s`k``s``s`ksk``s`k``s``s`kski``s``s`ksk``s``s`kski```s``s`kski``s``s`ksk``s``s`kski
````s``s`ksk``s``s`kski`s``s`ksk````s``s`ksk``s``s`kski`s``s`ksk```s``s`kski``s``s`ksk``s``s`kski
````s``s`kski```s``s`ksk``s``s`kski`s``s`ksk``s`k``s``s`ksk```sii``s``s`kski```s``s`kski``s``s`ksk``s``s`kski
````s``s`kski`s``s`ksk`````sii``s``s`kski`s``s`ksk```sii``s``s`kski
``s``s`ksk``s`k```sii``s``s`kskii
``s`k``s`k``s``s`kski``s``s`ksk``s``s`kski`````s``s`kski``s``s`ksk``s``s`kski`s``s`kski
Sample output:
44
25
6
12
13
12
7
24
45
8
68
80
108
24
24
4
7
9
32
41
17
25
108
6
0
126
100
7
7
18
12
999
20
3
432
0
15
51
10
5
60
Ranking
Rank | User | Size | Time | Date | Statistics |
---|
1 | ksk | 105 | 1.1281 | 2008/11/13 21:23:41 | 0B / 48B / 52B |
2 | irori | 116 | 1.9244 | 2008/11/13 23:36:54 | 0B / 54B / 55B |
3 | flagitious | 121 | 1.9520 | 2008/10/31 08:45:48 | 0B / 59B / 54B |
4 | leonid | 127 | 1.1463 | 2008/11/14 02:20:08 | 0B / 46B / 71B |
5 | kaki | 146 | 1.1875 | 2008/11/13 00:00:46 | 0B / 69B / 65B |
6 | shinh | 182 | 1.1790 | 2008/11/09 15:13:17 | 0B / 70B / 98B |
7 | leonid | 104 | 1.2035 | 2008/11/14 06:31:44 | 0B / 50B / 49B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | tails | 94 | 0.9221 | 2020/11/19 10:51:46 | 0B / 32B / 60B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | kaki | 206 | 0.3258 | 2008/11/13 13:42:03 | 0B / 90B / 100B |
2 | kaki | 180 | 0.3267 | 2011/06/12 05:26:25 | 0B / 73B / 93B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | hinoe | 247 | 0.0350 | 2008/11/03 20:45:28 | 0B / 107B / 140B |
2 | 51b | 416 | 0.0969 | 2008/11/09 01:24:55 | 0B / 182B / 234B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | ksk | 175 | 0.3491 | 2008/11/05 13:25:12 | 0B / 96B / 62B |
2 | kozima | 194 | 0.2321 | 2008/11/10 14:07:23 | 0B / 106B / 67B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | hinoe | 197 | 0.0651 | 2008/11/08 07:09:08 | 0B / 90B / 91B |
2 | Defenestrator | 227 | 0.2638 | 2008/11/11 11:19:42 | 0B / 110B / 83B |
3 | hinoe | 157 | 0.0411 | 2011/05/17 22:39:19 | 0B / 90B / 54B |
4 | hinoe(rst76) | 172 | 0.0069 | 2011/04/22 21:37:43 | 0B / 81B / 74B |
5 | notogawa | 184 | 0.4674 | 2008/11/18 20:50:23 | 0B / 82B / 91B |
6 | rst76 | 184 | 0.0061 | 2010/05/17 12:58:47 | 0B / 86B / 80B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | hinoe | 227 | 1.5602 | 2010/10/09 00:49:21 | 0B / 52B / 163B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | yshl(bin) | 162 | 1.2343 | 2008/11/09 01:38:29 | 65B / 40B / 57B |
2 | yshl | 282 | 1.5810 | 2008/11/09 01:38:15 | 0B / 198B / 51B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | irori | 551 | 0.4329 | 2008/11/04 23:51:35 | 0B / 267B / 284B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | tails | 735 | 0.2337 | 2021/05/31 14:14:24 | 0B / 397B / 338B |
Rank | User | Size | Time | Date | Statistics |
---|
1 | hinoe | 132 | 1.6825 | 2009/03/23 00:40:51 | 100B / 11B / 18B |
Language Ranking_
Rank | Lang | User | Size | Score |
1 | Perl | tails | 94 | 10000 |
2 | Ruby | leonid | 104 | 9038 |
3 | Universal Lambda | hinoe | 132 | 7121 |
4 | Python | irie | 157 | 5987 |
5 | Haskell | hinoe | 157 | 5987 |
6 | Postscript | yshl(bin) | 162 | 5802 |
7 | OCaml | ksk | 175 | 5371 |
8 | Scheme | kaki | 180 | 5222 |
9 | Common LISP | kozima | 181 | 5193 |
10 | wake | hinoe | 227 | 4140 |
11 | C | hinoe | 247 | 3805 |
12 | Unlambda | irori | 551 | 1705 |
13 | Lazy-K | tails | 735 | 1278 |
return to the top page