diff --git a/basis/bootstrap/image/image.factor b/basis/bootstrap/image/image.factor index 10cde266cc..5c76a0fcf8 100644 --- a/basis/bootstrap/image/image.factor +++ b/basis/bootstrap/image/image.factor @@ -240,7 +240,7 @@ GENERIC: ' ( obj -- ptr ) #! n is positive or zero. [ dup 0 > ] [ [ bignum-bits neg shift ] [ bignum-radix bitand ] bi ] - [ ] produce nip ; + produce nip ; : emit-bignum ( n -- ) dup dup 0 < [ neg ] when bignum>seq diff --git a/basis/concurrency/mailboxes/mailboxes.factor b/basis/concurrency/mailboxes/mailboxes.factor index 6dcf3dc34f..f6aec94b41 100755 --- a/basis/concurrency/mailboxes/mailboxes.factor +++ b/basis/concurrency/mailboxes/mailboxes.factor @@ -51,7 +51,7 @@ M: mailbox dispose* threads>> notify-all ; block-if-empty [ dup mailbox-empty? ] [ dup data>> pop-back ] - [ ] produce nip ; + produce nip ; : mailbox-get-all ( mailbox -- array ) f mailbox-get-all-timeout ; diff --git a/basis/environment/winnt/winnt.factor b/basis/environment/winnt/winnt.factor index 2ad3393aec..eb90a36ee7 100644 --- a/basis/environment/winnt/winnt.factor +++ b/basis/environment/winnt/winnt.factor @@ -27,7 +27,6 @@ M: winnt (os-envs) ( -- seq ) GetEnvironmentStrings [ [ utf16n decode-input - [ "\0" read-until drop dup empty? not ] - [ ] [ drop ] produce + [ "\0" read-until drop dup empty? not ] [ ] produce nip ] with-input-stream* ] [ FreeEnvironmentStrings win32-error=0/f ] bi ; diff --git a/basis/heaps/heaps.factor b/basis/heaps/heaps.factor index aa1ebf7786..564d7db17f 100644 --- a/basis/heaps/heaps.factor +++ b/basis/heaps/heaps.factor @@ -190,7 +190,7 @@ M: heap heap-pop ( heap -- value key ) : heap-pop-all ( heap -- alist ) [ dup heap-empty? not ] [ dup heap-pop swap 2array ] - [ ] produce nip ; + produce nip ; : slurp-heap ( heap quot: ( elt -- ) -- ) over heap-empty? [ 2drop ] [ diff --git a/basis/http/http.factor b/basis/http/http.factor index d4acd282f8..a64a11690c 100755 --- a/basis/http/http.factor +++ b/basis/http/http.factor @@ -12,7 +12,7 @@ base64 ; IN: http : (read-header) ( -- alist ) - [ read-crlf dup f like ] [ parse-header-line ] [ drop ] produce ; + [ read-crlf dup f like ] [ parse-header-line ] produce nip ; : collect-headers ( assoc -- assoc' ) H{ } clone [ '[ _ push-at ] assoc-each ] keep ; diff --git a/basis/io/directories/unix/unix.factor b/basis/io/directories/unix/unix.factor index 89e091f919..395ce73d7c 100644 --- a/basis/io/directories/unix/unix.factor +++ b/basis/io/directories/unix/unix.factor @@ -61,5 +61,5 @@ M: unix (directory-entries) ( path -- seq ) [ '[ _ find-next-file dup ] [ >directory-entry ] - [ drop ] produce + produce nip ] with-unix-directory ; diff --git a/basis/io/directories/windows/windows.factor b/basis/io/directories/windows/windows.factor index a6dacc1841..7554baa944 100755 --- a/basis/io/directories/windows/windows.factor +++ b/basis/io/directories/windows/windows.factor @@ -61,7 +61,7 @@ M: windows (directory-entries) ( path -- seq ) '[ [ _ find-next-file dup ] [ >directory-entry ] - [ drop ] produce + produce nip over name>> "." = [ nip ] [ swap prefix ] if ] ] [ '[ _ FindClose win32-error=0/f ] ] bi [ ] cleanup ; diff --git a/basis/io/files/info/windows/windows.factor b/basis/io/files/info/windows/windows.factor index cf826a59d3..fdff368491 100755 --- a/basis/io/files/info/windows/windows.factor +++ b/basis/io/files/info/windows/windows.factor @@ -159,9 +159,7 @@ M: winnt file-system-info ( path -- file-system-info ) find-first-volume [ '[ - [ _ find-next-volume dup ] - [ ] - [ drop ] produce + [ _ find-next-volume dup ] [ ] produce nip swap prefix ] ] [ '[ _ FindVolumeClose win32-error=0/f ] ] bi [ ] cleanup ; diff --git a/basis/math/combinatorics/combinatorics.factor b/basis/math/combinatorics/combinatorics.factor index d5dff65c35..afdf4e378e 100644 --- a/basis/math/combinatorics/combinatorics.factor +++ b/basis/math/combinatorics/combinatorics.factor @@ -16,7 +16,7 @@ IN: math.combinatorics ! http://msdn2.microsoft.com/en-us/library/aa302371.aspx : factoradic ( n -- factoradic ) - 0 [ over 0 > ] [ 1+ [ /mod ] keep swap ] [ ] produce reverse 2nip ; + 0 [ over 0 > ] [ 1+ [ /mod ] keep swap ] produce reverse 2nip ; : (>permutation) ( seq n -- seq ) [ '[ _ dupd >= [ 1+ ] when ] map ] keep prefix ; diff --git a/basis/persistent/deques/deques.factor b/basis/persistent/deques/deques.factor index 8f93ae1ab8..91f1dcf1f8 100644 --- a/basis/persistent/deques/deques.factor +++ b/basis/persistent/deques/deques.factor @@ -67,4 +67,4 @@ PRIVATE> [ push-back ] reduce ; : deque>sequence ( deque -- sequence ) - [ dup deque-empty? not ] [ pop-front swap ] [ ] produce nip ; + [ dup deque-empty? not ] [ pop-front swap ] produce nip ; diff --git a/basis/persistent/heaps/heaps.factor b/basis/persistent/heaps/heaps.factor index f6d38b5b25..38a7eb1313 100644 --- a/basis/persistent/heaps/heaps.factor +++ b/basis/persistent/heaps/heaps.factor @@ -98,6 +98,6 @@ M: branch pheap-push swap [ rot pheap-push ] assoc-each ; : pheap>alist ( heap -- alist ) - [ dup pheap-empty? not ] [ pheap-pop 2array ] [ ] produce nip ; + [ dup pheap-empty? not ] [ pheap-pop 2array ] produce nip ; : pheap>values ( heap -- seq ) pheap>alist keys ; diff --git a/basis/quoted-printable/quoted-printable.factor b/basis/quoted-printable/quoted-printable.factor index 3be1a07eab..e82789ccbf 100644 --- a/basis/quoted-printable/quoted-printable.factor +++ b/basis/quoted-printable/quoted-printable.factor @@ -32,7 +32,7 @@ IN: quoted-printable [ 1- cut-slice swap ] [ f swap ] if* concat ; : divide-lines ( strings -- strings ) - [ dup ] [ take-some ] [ ] produce nip ; + [ dup ] [ take-some ] produce nip ; PRIVATE> @@ -53,7 +53,7 @@ PRIVATE> ] when ; : read-quoted ( -- bytes ) - [ read1 dup ] [ read-char ] [ drop ] B{ } produce-as ; + [ read1 dup ] [ read-char ] B{ } produce-as nip ; PRIVATE> diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index 86f978373b..11d257b6b2 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -75,7 +75,7 @@ IN: regexp [ [ split1-slice nip ] keep ] [ 2drop f f ] if ; : all-matches ( string regexp -- seq ) - [ dup ] swap '[ _ next-match ] [ ] produce nip harvest ; + [ dup ] swap '[ _ next-match ] produce nip harvest ; : count-matches ( string regexp -- n ) all-matches length ; diff --git a/basis/stack-checker/stack-checker-tests.factor b/basis/stack-checker/stack-checker-tests.factor index 4361052b63..6e7774aba1 100644 --- a/basis/stack-checker/stack-checker-tests.factor +++ b/basis/stack-checker/stack-checker-tests.factor @@ -512,7 +512,7 @@ ERROR: custom-error ; [ [ missing->r-check ] infer ] must-fail ! Corner case -[ [ [ f dup ] [ dup ] [ ] produce ] infer ] must-fail +[ [ [ f dup ] [ dup ] produce ] infer ] must-fail [ [ [ f dup ] [ ] while ] infer ] must-fail diff --git a/basis/ui/windows/windows.factor b/basis/ui/windows/windows.factor index 9df694ee37..3b4bcd6e17 100755 --- a/basis/ui/windows/windows.factor +++ b/basis/ui/windows/windows.factor @@ -22,11 +22,7 @@ SINGLETON: windows-ui-backend [ [ dup CHAR: \n = [ CHAR: \r , ] when , ] each ] "" make ; : enum-clipboard ( -- seq ) - 0 - [ EnumClipboardFormats win32-error dup dup 0 > ] - [ ] - [ drop ] - produce nip ; + 0 [ EnumClipboardFormats win32-error dup dup 0 > ] [ ] produce 2nip ; : with-clipboard ( quot -- ) f OpenClipboard win32-error=0/f diff --git a/basis/unicode/breaks/breaks.factor b/basis/unicode/breaks/breaks.factor index 2f8daef8b2..ddcb99b829 100644 --- a/basis/unicode/breaks/breaks.factor +++ b/basis/unicode/breaks/breaks.factor @@ -102,8 +102,7 @@ PRIVATE> pieces ( str quot: ( str -- i ) -- graphemes ) - [ dup empty? not ] swap '[ dup @ cut-slice swap ] - [ ] produce nip ; inline + [ dup empty? not ] swap '[ dup @ cut-slice swap ] produce nip ; inline PRIVATE> diff --git a/basis/unicode/case/case.factor b/basis/unicode/case/case.factor index 3ac98cd57f..c75582dacd 100644 --- a/basis/unicode/case/case.factor +++ b/basis/unicode/case/case.factor @@ -18,7 +18,7 @@ SYMBOL: locale ! Just casing locale, or overall? group ] [ drop ] produce ; + [ getgrent dup ] [ group-struct>group ] produce nip ; : ( -- assoc ) all-groups [ [ id>> ] keep ] H{ } map>assoc ; diff --git a/basis/unix/users/users.factor b/basis/unix/users/users.factor index da38972955..a523f0818b 100644 --- a/basis/unix/users/users.factor +++ b/basis/unix/users/users.factor @@ -36,7 +36,7 @@ PRIVATE> : all-users ( -- seq ) [ - [ getpwent dup ] [ passwd>new-passwd ] [ drop ] produce + [ getpwent dup ] [ passwd>new-passwd ] produce nip ] with-pwent ; SYMBOL: user-cache diff --git a/basis/unix/utilities/utilities.factor b/basis/unix/utilities/utilities.factor index 29b137e3de..e1d26eab66 100644 --- a/basis/unix/utilities/utilities.factor +++ b/basis/unix/utilities/utilities.factor @@ -14,7 +14,7 @@ IN: unix.utilities : alien>strings ( alien encoding -- strings ) [ [ dup more? ] ] dip '[ [ advance ] [ *void* _ alien>string ] bi ] - [ ] produce nip ; + produce nip ; : strings>alien ( strings encoding -- array ) '[ _ malloc-string ] void*-array{ } map-as f suffix ; diff --git a/basis/unix/utmpx/utmpx.factor b/basis/unix/utmpx/utmpx.factor index 9f12bc599b..6e72f7d114 100644 --- a/basis/unix/utmpx/utmpx.factor +++ b/basis/unix/utmpx/utmpx.factor @@ -57,7 +57,7 @@ M: unix utmpx>utmpx-record ( utmpx -- utmpx-record ) [ [ getutxent dup ] [ utmpx>utmpx-record ] - [ drop ] produce + produce nip ] with-utmpx ; os { diff --git a/core/classes/algebra/algebra.factor b/core/classes/algebra/algebra.factor index 825cd67a4d..c774ef1c1d 100755 --- a/core/classes/algebra/algebra.factor +++ b/core/classes/algebra/algebra.factor @@ -210,7 +210,7 @@ M: anonymous-complement (classes-intersect?) [ [ name>> ] compare ] sort >vector [ dup empty? not ] [ dup largest-class [ over delete-nth ] dip ] - [ ] produce nip ; + produce nip ; : min-class ( class seq -- class/f ) over [ classes-intersect? ] curry filter diff --git a/core/effects/parser/parser.factor b/core/effects/parser/parser.factor index 6b7e953b6c..a009db76b1 100644 --- a/core/effects/parser/parser.factor +++ b/core/effects/parser/parser.factor @@ -21,7 +21,7 @@ ERROR: bad-effect ; ] if ; : parse-effect-tokens ( end -- tokens ) - [ parse-effect-token dup ] curry [ ] [ drop ] produce ; + [ parse-effect-token dup ] curry [ ] produce nip ; : parse-effect ( end -- effect ) parse-effect-tokens { "--" } split1 dup diff --git a/core/io/io-docs.factor b/core/io/io-docs.factor index 5d8aa6a88f..489cac6703 100644 --- a/core/io/io-docs.factor +++ b/core/io/io-docs.factor @@ -224,7 +224,7 @@ $io-error ; ARTICLE: "stream-protocol" "Stream protocol" "The stream protocol consists of a large number of generic words, many of which are optional." $nl -"Stream protocol words are rarely called directly, since code which only works with one stream at a time should be written use " { $link "stdio" } " instead, wrapping I/O operations such as " { $link read } " and " { $link write } " in " { $link with-input-stream } " and " { $link with-output-stream } "." +"Stream protocol words are rarely called directly, since code which only works with one stream at a time should be written to use " { $link "stdio" } " instead, wrapping I/O operations such as " { $link read } " and " { $link write } " in " { $link with-input-stream } " and " { $link with-output-stream } "." $nl "All streams must implement the " { $link dispose } " word in addition to the stream protocol." $nl diff --git a/core/io/io.factor b/core/io/io.factor index 52ac23622a..cb68b1c4fe 100644 --- a/core/io/io.factor +++ b/core/io/io.factor @@ -65,7 +65,7 @@ SYMBOL: error-stream : bl ( -- ) " " write ; : lines ( stream -- seq ) - [ [ readln dup ] [ ] [ drop ] produce ] with-input-stream ; + [ [ readln dup ] [ ] produce nip ] with-input-stream ; : contents ( stream -- seq ) [ - [ 65536 read-partial dup ] - [ ] [ drop ] produce concat f like + [ 65536 read-partial dup ] [ ] produce nip concat f like ] with-input-stream ; : each-block ( quot: ( block -- ) -- ) diff --git a/core/kernel/kernel-docs.factor b/core/kernel/kernel-docs.factor index c2719c056a..800bc86b66 100644 --- a/core/kernel/kernel-docs.factor +++ b/core/kernel/kernel-docs.factor @@ -667,12 +667,11 @@ ARTICLE: "looping-combinators" "Looping combinators" "In most cases, loops should be written using high-level combinators (such as " { $link "sequences-combinators" } ") or tail recursion. However, sometimes, the best way to express intent is with a loop." { $subsection while } { $subsection until } -$nl "To execute one iteration of a loop, use the following word:" { $subsection do } "This word is intended as a modifier. The normal " { $link while } " loop never executes the body if the predicate returns first on the first iteration. To ensure the body executes at least once, use " { $link do } ":" { $code - "[ P ] [ Q ] [ T ] do while" + "[ P ] [ Q ] do while" } "A simpler looping combinator which executes a single quotation until it returns " { $link f } ":" { $subsection loop } ; diff --git a/core/math/parser/parser.factor b/core/math/parser/parser.factor index ac6c5e9790..0d8f0c0b08 100644 --- a/core/math/parser/parser.factor +++ b/core/math/parser/parser.factor @@ -96,7 +96,7 @@ PRIVATE> : positive>base ( num radix -- str ) dup 1 <= [ "Invalid radix" throw ] when - [ dup 0 > ] swap [ /mod >digit ] curry [ ] "" produce-as nip + [ dup 0 > ] swap [ /mod >digit ] curry "" produce-as nip dup reverse-here ; inline PRIVATE> diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor index c12761ab38..67084e256f 100755 --- a/core/sequences/sequences-docs.factor +++ b/core/sequences/sequences-docs.factor @@ -915,24 +915,19 @@ HELP: supremum { $errors "Throws an error if the sequence is empty." } ; HELP: produce -{ $values { "pred" { $quotation "( -- ? )" } } { "quot" { $quotation "( -- obj )" } } { "tail" "a quotation" } { "seq" "a sequence" } } +{ $values { "pred" { $quotation "( -- ? )" } } { "quot" { $quotation "( -- obj )" } } { "seq" "a sequence" } } { $description "Calls " { $snippet "pred" } " repeatedly. If the predicate yields " { $link f } ", stops, otherwise, calls " { $snippet "quot" } " to yield a value. Values are accumulated and returned in a sequence at the end." } { $examples "The following example divides a number by two until we reach zero, and accumulates intermediate results:" - { $example "USING: kernel math prettyprint sequences ;" "1337 [ dup 0 > ] [ 2/ dup ] [ ] produce nip ." "{ 668 334 167 83 41 20 10 5 2 1 0 }" } - "The " { $snippet "tail" } " quotation is used when the predicate produces more than one output value. In this case, we have to drop this value even if the predicate fails in order for stack inference to calculate a stack effect for the " { $link produce } " call:" - { $unchecked-example "USING: kernel prettyprint random sequences ;" "[ 10 random dup 1 > ] [ ] [ drop ] produce ." "{ 8 2 2 9 }" } + { $example "USING: kernel math prettyprint sequences ;" "1337 [ dup 0 > ] [ 2/ dup ] produce nip ." "{ 668 334 167 83 41 20 10 5 2 1 0 }" } + "The following example collects random numbers as long as they are greater than 1:" + { $unchecked-example "USING: kernel prettyprint random sequences ;" "[ 10 random dup 1 > ] [ ] produce nip ." "{ 8 2 2 9 }" } } ; HELP: produce-as -{ $values { "pred" { $quotation "( -- ? )" } } { "quot" { $quotation "( -- obj )" } } { "tail" "a quotation" } { "exemplar" sequence } { "seq" "a sequence" } } +{ $values { "pred" { $quotation "( -- ? )" } } { "quot" { $quotation "( -- obj )" } } { "exemplar" sequence } { "seq" "a sequence" } } { $description "Calls " { $snippet "pred" } " repeatedly. If the predicate yields " { $link f } ", stops, otherwise, calls " { $snippet "quot" } " to yield a value. Values are accumulated and returned in a sequence of type " { $snippet "exemplar" } " at the end." } -{ $examples - "The following example divides a number by two until we reach zero, and accumulates intermediate results:" - { $example "USING: kernel math prettyprint sequences ;" "1337 [ dup 0 > ] [ 2/ dup ] [ ] V{ } produce-as nip ." "V{ 668 334 167 83 41 20 10 5 2 1 0 }" } - "The " { $snippet "tail" } " quotation is used when the predicate produces more than one output value. In this case, we have to drop this value even if the predicate fails in order for stack inference to calculate a stack effect for the " { $link produce } " call:" - { $unchecked-example "USING: kernel prettyprint random sequences ;" "[ 10 random dup 1 > ] [ ] [ drop ] B{ } produce-as ." "B{ 8 2 2 9 }" } -} ; +{ $examples "See " { $link produce } " for examples." } ; HELP: sigma { $values { "seq" sequence } { "quot" quotation } { "n" number } } diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 2983520620..fba7aa3b03 100755 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -487,14 +487,14 @@ PRIVATE> : accumulator ( quot -- quot' vec ) V{ } clone [ [ push ] curry compose ] keep ; inline -: produce-as ( pred quot tail exemplar -- seq ) - [ [ accumulator [ while ] dip ] dip dip ] dip like ; inline +: produce-as ( pred quot exemplar -- seq ) + [ accumulator [ while ] dip ] dip like ; inline -: produce ( pred quot tail -- seq ) +: produce ( pred quot -- seq ) { } produce-as ; inline : follow ( obj quot -- seq ) - [ dup ] swap [ keep ] curry [ ] produce nip ; inline + [ dup ] swap [ keep ] curry produce nip ; inline : prepare-index ( seq quot -- seq n quot ) [ dup length ] dip ; inline diff --git a/extra/id3/id3.factor b/extra/id3/id3.factor index d1397285d7..f01c400338 100644 --- a/extra/id3/id3.factor +++ b/extra/id3/id3.factor @@ -115,7 +115,7 @@ TUPLE: id3v1-info title artist album year comment genre ; : read-frames ( mmap -- frames ) [ dup read-frame dup ] [ [ remove-frame ] keep ] - [ drop ] produce nip ; + produce 2nip ; ! header stuff diff --git a/extra/iokit/iokit.factor b/extra/iokit/iokit.factor index 3fb14e8ec5..12eb6d6e92 100755 --- a/extra/iokit/iokit.factor +++ b/extra/iokit/iokit.factor @@ -166,9 +166,7 @@ M: mach-error error. IOObjectRelease mach-error ; : io-objects-from-iterator* ( i -- i array ) - [ dup IOIteratorNext dup MACH_PORT_NULL = not ] - [ ] - [ drop ] produce ; + [ dup IOIteratorNext dup MACH_PORT_NULL = not ] [ ] produce nip ; : io-objects-from-iterator ( i -- array ) io-objects-from-iterator* [ release-io-object ] dip ; diff --git a/extra/math/text/utils/utils.factor b/extra/math/text/utils/utils.factor index 73326de273..422a79a1f3 100644 --- a/extra/math/text/utils/utils.factor +++ b/extra/math/text/utils/utils.factor @@ -4,4 +4,4 @@ USING: kernel math sequences ; IN: math.text.utils : 3digit-groups ( n -- seq ) - [ dup 0 > ] [ 1000 /mod ] [ ] produce nip ; + [ dup 0 > ] [ 1000 /mod ] produce nip ; diff --git a/extra/multi-methods/multi-methods.factor b/extra/multi-methods/multi-methods.factor index 5ad1d944d3..3370ab7f86 100755 --- a/extra/multi-methods/multi-methods.factor +++ b/extra/multi-methods/multi-methods.factor @@ -82,7 +82,7 @@ SYMBOL: total : topological-sort ( seq quot -- newseq ) [ >vector [ dup empty? not ] ] dip [ dupd maximal-element [ over delete-nth ] dip ] curry - [ ] produce nip ; inline + produce nip ; inline : classes< ( seq1 seq2 -- lt/eq/gt ) [ diff --git a/extra/project-euler/002/002.factor b/extra/project-euler/002/002.factor index 9c462b6b2e..136ebbb6da 100644 --- a/extra/project-euler/002/002.factor +++ b/extra/project-euler/002/002.factor @@ -41,7 +41,7 @@ PRIVATE> ! ------------------- : fib-upto* ( n -- seq ) - 0 1 [ pick over >= ] [ tuck + dup ] [ ] produce [ 3drop ] dip + 0 1 [ pick over >= ] [ tuck + dup ] produce [ 3drop ] dip but-last-slice { 0 1 } prepend ; : euler002a ( -- answer ) diff --git a/extra/project-euler/019/019.factor b/extra/project-euler/019/019.factor index 16a7139f51..4b750ac180 100644 --- a/extra/project-euler/019/019.factor +++ b/extra/project-euler/019/019.factor @@ -53,7 +53,7 @@ IN: project-euler.019 : first-days ( end-date start-date -- days ) [ 2dup after=? ] [ dup 1 months time+ swap day-of-week ] - [ ] produce 2nip ; + produce 2nip ; PRIVATE> diff --git a/extra/project-euler/071/071.factor b/extra/project-euler/071/071.factor index feecd997fa..69d9eb1a03 100644 --- a/extra/project-euler/071/071.factor +++ b/extra/project-euler/071/071.factor @@ -40,7 +40,7 @@ IN: project-euler.071 PRIVATE> : euler071 ( -- answer ) - 2/5 [ dup denominator 1000000 <= ] [ 3/7 mediant dup ] [ ] produce + 2/5 [ dup denominator 1000000 <= ] [ 3/7 mediant dup ] produce nip penultimate numerator ; ! [ euler071 ] 100 ave-time diff --git a/extra/project-euler/148/148.factor b/extra/project-euler/148/148.factor index 533874fa67..5aa0299dda 100644 --- a/extra/project-euler/148/148.factor +++ b/extra/project-euler/148/148.factor @@ -35,7 +35,7 @@ IN: project-euler.148 dup 1+ * 2/ ; inline : >base7 ( x -- y ) - [ dup 0 > ] [ 7 /mod ] [ ] produce nip ; + [ dup 0 > ] [ 7 /mod ] produce nip ; : (use-digit) ( prev x index -- next ) [ [ 1+ * ] [ sum-1toN 7 sum-1toN ] bi ] dip ^ * + ; diff --git a/extra/project-euler/common/common.factor b/extra/project-euler/common/common.factor index 1a57a91e5e..ac8986b3ff 100644 --- a/extra/project-euler/common/common.factor +++ b/extra/project-euler/common/common.factor @@ -72,7 +72,7 @@ PRIVATE> ] if ; : number>digits ( n -- seq ) - [ dup 0 = not ] [ 10 /mod ] [ ] produce reverse nip ; + [ dup 0 = not ] [ 10 /mod ] produce reverse nip ; : nth-triangle ( n -- n ) dup 1+ * 2 / ;