]> gitweb.factorcode.org Git - factor.git/blob - extra/nested-comments/nested-comments.factor
Solution to Project Euler problem 65
[factor.git] / extra / nested-comments / nested-comments.factor
1 ! by blei on #concatenative\r
2 USING: kernel sequences math locals make multiline ;\r
3 IN: nested-comments\r
4 \r
5 :: (subsequences-at) ( sseq seq n -- )\r
6     sseq seq n start*\r
7     [ dup , sseq length + [ sseq seq ] dip (subsequences-at) ]\r
8     when* ;\r
9 \r
10 : subsequences-at ( sseq seq -- indices )\r
11     [ 0 (subsequences-at) ] { } make ;\r
12 \r
13 : count-subsequences ( sseq seq -- i )\r
14     subsequences-at length ;\r
15 \r
16 : parse-all-(* ( parsed-vector left-to-parse -- parsed-vector )\r
17     1 - "*)" parse-multiline-string [ "(*" ] dip\r
18     count-subsequences + dup 0 > [ parse-all-(* ] [ drop ] if ;\r
19 \r
20 SYNTAX: (* 1 parse-all-(* ;