]> gitweb.factorcode.org Git - factor.git/commitdiff
brainfuck: collapse spaces to compress better, 2+2=5 test.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 17 Jun 2014 16:32:09 +0000 (09:32 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 17 Jun 2014 16:32:09 +0000 (09:32 -0700)
extra/brainfuck/brainfuck-tests.factor
extra/brainfuck/brainfuck.factor

index 19fccaf0ca005b18dd49fe3cc712cdb9cb0f553d..7e730db31eb04e0a040d429c537eb85f94693fa7 100644 (file)
@@ -60,4 +60,16 @@ IN: brainfuck.tests
      [-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]"""
   get-brainfuck ] unit-test
 
-
+! fun with numbers: 2 + 2 = 5
+
+{ "5" } [
+    """
+    +++++           +++++
+        +               +
+        +     +         +     +++++
+    +++++    +++    +++++
+    +         +     +         +++++
+    +               +
+    +++++           +++++.
+    """ get-brainfuck
+] unit-test
index a689fcbc1149e05290d08ad3891c21a1210a2283..11c7bba612a799fe1d47684dce190c8a2c332a4d 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2009 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 
-USING: accessors assocs io io.streams.string kernel macros
-math peg.ebnf prettyprint sequences strings ;
+USING: accessors ascii assocs fry io io.streams.string kernel
+macros math peg.ebnf prettyprint sequences strings ;
 
 IN: brainfuck
 
@@ -70,8 +70,8 @@ code  = (loop|ops|unknown)*  => [[ compose-all ]]
 PRIVATE>
 
 MACRO: run-brainfuck ( code -- )
-    [ <brainfuck> ] swap parse-brainfuck [ drop flush ] 3append ;
+    [ blank? not ] filter parse-brainfuck
+    '[ <brainfuck> @ drop flush ] ;
 
 : get-brainfuck ( code -- result )
     [ run-brainfuck ] with-string-writer ; inline
-