]> gitweb.factorcode.org Git - factor.git/commitdiff
remove [wlet ]
authorJoe Groff <arcata@gmail.com>
Tue, 27 Oct 2009 04:17:40 +0000 (23:17 -0500)
committerJoe Groff <arcata@gmail.com>
Tue, 27 Oct 2009 04:17:40 +0000 (23:17 -0500)
basis/locals/errors/errors.factor
basis/locals/locals-docs.factor
basis/locals/locals-tests.factor
basis/locals/locals.factor
basis/locals/parser/parser.factor
basis/locals/prettyprint/prettyprint.factor
basis/locals/rewrite/sugar/sugar.factor
basis/locals/types/types.factor
extra/reports/noise/noise.factor
misc/fuel/fuel-syntax.el

index e7b4c5a88439954b03b0b9350a9825f4e41bb564..c2caa7eb8ca10bd739b558c150598fc7c03670bb 100644 (file)
@@ -12,7 +12,7 @@ M: >r/r>-in-lambda-error summary
 ERROR: binding-form-in-literal-error ;
 
 M: binding-form-in-literal-error summary
-    drop "[let, [let* and [wlet not permitted inside literals" ;
+    drop "[let and [let* not permitted inside literals" ;
 
 ERROR: local-writer-in-literal-error ;
 
index 92c34eb53beecf7b7213af21a8e66ccce9d993bf..14d55169acdfa25dda6e02d161fa3a1bb8e01543 100644 (file)
@@ -19,29 +19,13 @@ HELP: [let*
 
 { POSTPONE: [let POSTPONE: [let* } related-words
 
-HELP: [wlet
-{ $syntax "[wlet | binding1 [ body1... ]\n        binding2 [ body2... ]\n        ... |\n     body... ]" }
-{ $description "Introduces a set of lexically-scoped non-recursive local functions. The bodies may not refer to other bindings within the same " { $link POSTPONE: [wlet } " form." }
-{ $examples
-    { $example
-        "USING: locals math prettyprint sequences ;"
-        "IN: scratchpad"
-        ":: quuxify ( n seq -- newseq )"
-        "    [wlet | add-n [| m | m n + ] |"
-        "        seq [ add-n ] map ] ;"
-        "2 { 1 2 3 } quuxify ."
-        "{ 3 4 5 }"
-    }
-} ;
-
 HELP: :>
 { $syntax ":> var" ":> var!" }
 { $description "Binds the value on the top of the datastack to a new local variable named " { $snippet "var" } ", lexically scoped to the enclosing quotation or definition."
 $nl
 "If the " { $snippet "var" } " name is followed by an exclamation point (" { $snippet "!" } "), the new variable will be mutable. See " { $link "locals-mutable" } " for more information on mutable local bindings." }
 { $notes
-    "This syntax can only be used inside a " { $link POSTPONE: :: } " word, " { $link POSTPONE: [let } ", " { $link POSTPONE: [let* } ",  or " { $link POSTPONE: [wlet } " form, or inside a quotation literal inside one of those forms."
-}
+    "This syntax can only be used inside a " { $link POSTPONE: :: } " word, " { $link POSTPONE: [let } " or " { $link POSTPONE: [let* } " form, or inside a quotation literal inside one of those forms." }
 { $examples "See " { $link "locals-examples" } "." } ;
 
 HELP: ::
@@ -301,7 +285,6 @@ ARTICLE: "locals" "Lexical variables and closures"
     POSTPONE: :>
     POSTPONE: [let
     POSTPONE: [let*
-    POSTPONE: [wlet
 }
 "Quotation literals where the inputs are named local variables:"
 { $subsections POSTPONE: [| }
index 63b6d68feb3a4131eb5ed4415711ad754c67c48a..d1c9a76581c964fa36af40da31481d3bec0a3252 100644 (file)
@@ -55,29 +55,6 @@ IN: locals.tests
 
 [ -1 ] [ -1 let-test-3 call ] unit-test
 
-[ 5 ] [
-    [let | a [ 3 ] | [wlet | func [ a + ] | 2 func ] ]
-] unit-test
-
-:: wlet-test-2 ( a b -- seq )
-    [wlet | add-b [ b + ] |
-        a [ add-b ] map ] ;
-
-
-[ { 4 5 6 } ] [ { 2 3 4 } 2 wlet-test-2 ] unit-test
-    
-:: wlet-test-3 ( a -- b )
-    [wlet | add-a [ a + ] | [ add-a ] ]
-    [let | a [ 3 ] | a swap call ] ;
-
-[ 5 ] [ 2 wlet-test-3 ] unit-test
-
-:: wlet-test-4 ( a -- b )
-    [wlet | sub-a [| b | b a - ] |
-        3 sub-a ] ;
-
-[ -7 ] [ 10 wlet-test-4 ] unit-test
-
 :: write-test-1 ( n! -- q )
     [| i | n i + dup n! ] ;
 
@@ -120,12 +97,6 @@ write-test-2 "q" set
 
 [ ] [ 5 write-test-4 drop ] unit-test
 
-! Not really a write test; just enforcing consistency
-:: write-test-5 ( x -- y )
-    [wlet | fun! [ x + ] | 5 fun! ] ;
-
-[ 9 ] [ 4 write-test-5 ] unit-test
-
 :: let-let-test ( n -- n ) [let | n [ n 3 + ] | n ] ;
 
 [ 13 ] [ 10 let-let-test ] unit-test
@@ -170,12 +141,6 @@ M:: string lambda-generic ( a b -- c ) a b lambda-generic-2 ;
     \ unparse-test-1 "lambda" word-prop body>> first unparse
 ] unit-test
 
-:: unparse-test-2 ( -- ) [wlet | a! [ ] | ] ;
-
-[ "[wlet | a! [ ] | ]" ] [
-    \ unparse-test-2 "lambda" word-prop body>> first unparse
-] unit-test
-
 :: unparse-test-3 ( -- b ) [| a! | ] ;
 
 [ "[| a! | ]" ] [
@@ -486,14 +451,10 @@ M:: integer lambda-method-forget-test ( a -- b ) a ;
 
 [ "USE: locals [| | { [let | a [ 0 ] | a ] } ]" eval( -- ) ] must-fail
 
-[ "USE: locals [| | { [wlet | a [ 0 ] | a ] } ]" eval( -- ) ] must-fail
-
 [ "USE: locals [| | { [let* | a [ 0 ] | a ] } ]" eval( -- ) ] must-fail
 
 [ "USE: locals [| | [let | a! [ 0 ] | { a! } ] ]" eval( -- ) ] must-fail
 
-[ "USE: locals [| | [wlet | a [ 0 ] | { a } ] ]" eval( -- ) ] must-fail
-
 [ "USE: locals [| | { :> a } ]" eval( -- ) ] must-fail
 
 [ "USE: locals 3 :> a" eval( -- ) ] must-fail
@@ -504,19 +465,6 @@ M:: integer lambda-method-forget-test ( a -- b ) a ;
 
 [ 3 ] [ 2 [| | :> a! a 1 + a! a ] call ] unit-test
 
-:: wlet-&&-test ( a -- ? )
-    [wlet | is-integer? [ a integer? ]
-            is-even? [ a even? ]
-            >10? [ a 10 > ] |
-        { [ is-integer? ] [ is-even? ] [ >10? ] } &&
-    ] ;
-
-\ wlet-&&-test def>> must-infer
-[ f ] [ 1.5 wlet-&&-test ] unit-test
-[ f ] [ 3 wlet-&&-test ] unit-test
-[ f ] [ 8 wlet-&&-test ] unit-test
-[ t ] [ 12 wlet-&&-test ] unit-test
-
 : fry-locals-test-1 ( -- n )
     [let | | 6 '[ [let | A [ 4 ] | A _ + ] ] call ] ;
 
index 9e26a8caaa413c143e06563021286e57412b58de..de3657c1ae580a487fe8b4c93527653fb35eb196 100644 (file)
@@ -15,8 +15,6 @@ SYNTAX: [let parse-let over push-all ;
 
 SYNTAX: [let* parse-let* over push-all ;
 
-SYNTAX: [wlet parse-wlet over push-all ;
-
 SYNTAX: :: (::) define-declared ;
 
 SYNTAX: M:: (M::) define ;
index 8cfe45d1ba7e53e1265b693c2168342e5da4b5ee..9e45a59e81ac07b7637596bd38c60caa60537b68 100644 (file)
@@ -86,19 +86,6 @@ M: lambda-parser parse-quotation ( -- quotation )
     "|" expect "|" parse-bindings*
     (parse-lambda) <let*> ?rewrite-closures ;
 
-: (parse-wbindings) ( end -- )
-    dup parse-binding dup [
-        first2 [ make-local-word ] keep 2array ,
-        (parse-wbindings)
-    ] [ 2drop ] if ;
-
-: parse-wbindings ( end -- bindings vars )
-    [ (parse-wbindings) ] with-bindings ;
-
-: parse-wlet ( -- form )
-    "|" expect "|" parse-wbindings
-    (parse-lambda) <wlet> ?rewrite-closures ;
-
 : parse-locals ( -- effect vars assoc )
     complete-effect
     dup
@@ -121,4 +108,4 @@ M: lambda-parser parse-quotation ( -- quotation )
     [
         [ parse-definition ] 
         parse-locals-definition drop
-    ] with-method-definition ;
\ No newline at end of file
+    ] with-method-definition ;
index 187b663c3c60f9888da19da695a3072d22926b13..031f6b4ad402fa773776e282aed3844d11d8cebb 100644 (file)
@@ -40,8 +40,6 @@ M: lambda pprint*
 
 M: let pprint* \ [let pprint-let ;
 
-M: wlet pprint* \ [wlet pprint-let ;
-
 M: let* pprint* \ [let* pprint-let ;
 
 M: def pprint*
index 87568d596aba4bdc104a26d69f42023214b8117f..9f4e174d02bc6298e1a495904a9c57e1a0778db1 100755 (executable)
@@ -6,7 +6,7 @@ locals.errors locals.types make quotations sequences vectors
 words ;
 IN: locals.rewrite.sugar
 
-! Step 1: rewrite [| [let [let* [wlet into :> forms, turn
+! Step 1: rewrite [| [let [let* into :> forms, turn
 ! literals with locals in them into code which constructs
 ! the literal after pushing locals on the stack
 
@@ -124,8 +124,3 @@ M: let rewrite-sugar*
 
 M: let* rewrite-sugar*
     [ body>> ] [ bindings>> ] bi let-rewrite ;
-
-M: wlet rewrite-sugar*
-    [ body>> ] [ bindings>> ] bi
-    [ '[ _ ] ] assoc-map
-    let-rewrite ;
index 3ed753e094c9cda310b37fde12adf41f56c6f991..72db7c3705b68368a69b76c1d77b632719944261 100644 (file)
@@ -18,10 +18,6 @@ TUPLE: let* < binding-form ;
 
 C: <let*> let*
 
-TUPLE: wlet < binding-form ;
-
-C: <wlet> wlet
-
 TUPLE: quote local ;
 
 C: <quote> quote
index f5c2ea9811b0b25eb4d00fba5e83e48bed9e14b0..cae2c20877c8b59e2a4b30525377a8292a988865 100755 (executable)
@@ -81,8 +81,6 @@ M: wrapper noise wrapped>> noise ;
 \r
 M: let noise body>> noise ;\r
 \r
-M: wlet noise body>> noise ;\r
-\r
 M: lambda noise body>> noise ;\r
 \r
 M: object noise drop { 0 0 } ;\r
index 73d6781313909d150b3913b47046c56e199e5c15..8c4dbc4f8c362fa02772fee884a35972774fab06 100644 (file)
     ("\\(\n\\| \\);\\_>" (1 ">b"))
     ;; Let and lambda:
     ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">"))
-    ("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]"))
+    ("\\(\\[\\)\\(let\\|let\\*\\)\\( \\|$\\)" (1 "(]"))
     ("\\(\\[\\)\\(|\\) +[^|]* \\(|\\)" (1 "(]") (2 "(|") (3 ")|"))
     (" \\(|\\) " (1 "(|"))
     (" \\(|\\)$" (1 ")"))