diff --git a/core/modern/modern-tests.factor b/core/modern/modern-tests.factor index 91dac4cddc..cbf86f5611 100644 --- a/core/modern/modern-tests.factor +++ b/core/modern/modern-tests.factor @@ -97,3 +97,7 @@ in: modern.tests { 1 } [ ":foo" string>literals length ] unit-test { 1 } [ "( :integer )" string>literals length ] unit-test + + +{ 1 } [ "postpone\\ main:" string>literals length ] unit-test +{ 1 } [ "char: \\!" string>literals length ] unit-test \ No newline at end of file diff --git a/core/modern/modern.factor b/core/modern/modern.factor index 25aaf266d8..336e08da12 100644 --- a/core/modern/modern.factor +++ b/core/modern/modern.factor @@ -326,18 +326,11 @@ ERROR: colon-word-must-be-all-uppercase-or-lowercase n string word ; dup { [ "!" sequence= ] [ "#!" sequence= ] } 1|| [ take-comment ] [ merge-slice-til-whitespace make-tag-literal ] if ; -! XXX: Allow foo\ or just \? ERROR: backslash-expects-whitespace slice ; : read-backslash ( n string slice -- n' string obj ) 2over peek-from blank? [ ! \ foo, M\ foo - dup length 1 > [ - ! M\ foo\ - merge-slice-til-whitespace make-tag-literal - ] [ - ! \ - [ skip-blank-from slice-til-whitespace drop dup ] dip 1 cut-slice* backslash-literal make-delimited-literal - ] if + [ skip-blank-from slice-til-whitespace drop dup ] dip 1 cut-slice* backslash-literal make-delimited-literal ] [ ! M\N merge-slice-til-whitespace make-tag-literal diff --git a/demos/project-euler/011/011.factor b/demos/project-euler/011/011.factor index c0ca3f74ff..3238d6e51d 100644 --- a/demos/project-euler/011/011.factor +++ b/demos/project-euler/011/011.factor @@ -80,10 +80,10 @@ in: project-euler.011 length iota [ 0 ] map ] keep [ append ] 2map ; -: diagonal/ ( -- matrix ) +: diagonal-one ( -- matrix ) horizontal reverse pad-front pad-back flip ; -: diagonal\ ( -- matrix ) +: diagonal-two ( -- matrix ) horizontal pad-front pad-back flip ; : max-product ( matrix width -- n ) @@ -94,7 +94,7 @@ PRIVATE> : euler011 ( -- answer ) [ - { [ horizontal ] [ vertical ] [ diagonal/ ] [ diagonal\ ] } + { [ horizontal ] [ vertical ] [ diagonal-one ] [ diagonal-two ] } [ call( -- matrix ) 4 max-product , ] each ] { } make supremum ;