fez-lisp 1.6.62 → 1.6.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/baked/std-T.js +1 -1
- package/package.json +1 -1
- package/src/check.js +11 -12
- package/src/macros.js +6 -9
- package/src/types.js +6 -3
package/lib/baked/std-T.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export default [[[0,"the"],[1,"math:reverse"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:map"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:enumerated-fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:enumerated-exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:log-taylor-series"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:collatz"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:maximum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:minimum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-def"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-get"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-set!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-del!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-set-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-increment!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-decrement!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-increment-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-decrement-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-add!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-subtract!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-multiply!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-divide!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-add-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-subtract-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-multiply-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-divide-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:max-sub-array-sum"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:median"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:mean"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:subset"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:permutations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations-n"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:variants"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:unique"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:divisors"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:remove-leading-zeroes"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:sort"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:flat-one"],[[0,"lambda"],[1,"Number[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:zeroes"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:ones"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:find-index"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:points"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"var:def"],[[0,"lambda"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:get"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"var:set!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:del!"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:set-and-get!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:first"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:second"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:third"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:last"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get-number"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:get-nested-number-1"],[[0,"lambda"],[1,"Number[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"array:get-nested-number-2"],[[0,"lambda"],[1,"Number[][][]"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"array:get-array"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-1"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-2"],[[0,"lambda"],[1,"Unknown[][][]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:get-boolean"],[[0,"lambda"],[1,"Boolean[]"],[1,"Number"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"array:get-nested-boolean-1"],[[0,"lambda"],[1,"Boolean[][]"],[1,"Number"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"array:get-nested-boolean-2"],[[0,"lambda"],[1,"Boolean[][][]"],[1,"Number"],[[0,"do"],[1,"Boolean[][]"]]]],[[0,"the"],[1,"array:transform"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:enumerated-reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:zip"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:push!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"array:append!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"list:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"bools:fold"],[[0,"lambda"],[1,"Boolean[]"],[[0,"lambda"],[1,"Boolean"],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:def-strict"],[[0,"lambda"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:get"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:set!"],[[0,"lambda"],[1,"Boolean[]"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:toggle!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:false!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:false?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"from:string->array"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"from:array->string"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->integers"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->floats"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->float"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:float->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->digits"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->chars"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->digits"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->set"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Unknown[][]"]]]]]
|
1
|
+
export default [[[0,"the"],[1,"math:reverse"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:map"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:enumerated-fold"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-every?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-some?"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"math:enumerated-select"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:enumerated-exclude"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:log-taylor-series"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:collatz"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:maximum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:minimum-index"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-def"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-get"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-set!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-del!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-set-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-increment!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-decrement!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-increment-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-decrement-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-add!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-subtract!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-multiply!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-divide!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:var-add-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-subtract-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-multiply-and-get!"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:var-divide-and-get!"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:max-sub-array-sum"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:median"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:mean"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"math:subset"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:permutations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:combinations-n"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:variants"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"math:unique"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:divisors"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:remove-leading-zeroes"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:sort"],[[0,"lambda"],[1,"Number[]"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"math:flat-one"],[[0,"lambda"],[1,"Number[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:zeroes"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:ones"],[[0,"lambda"],[1,"Number"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"matrix:find-index"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"matrix:points"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[[0,"do"],[1,"Boolean"]]],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"var:def"],[[0,"lambda"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:get"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"var:set!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:del!"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"var:set-and-get!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:first"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:second"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:third"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:last"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get"],[[0,"lambda"],[1,"Unknown[]"],[1,"Number"],[[0,"do"],[1,"Any"]]]],[[0,"the"],[1,"array:get-number"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:get-nested-number-1"],[[0,"lambda"],[1,"Number[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"array:get-nested-number-2"],[[0,"lambda"],[1,"Number[][][]"],[1,"Number"],[[0,"do"],[1,"Number[][]"]]]],[[0,"the"],[1,"array:get-array"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-1"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:get-nested-array-2"],[[0,"lambda"],[1,"Unknown[][][]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:get-boolean"],[[0,"lambda"],[1,"Boolean[]"],[1,"Number"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"array:get-nested-boolean-1"],[[0,"lambda"],[1,"Boolean[][]"],[1,"Number"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"array:get-nested-boolean-2"],[[0,"lambda"],[1,"Boolean[][][]"],[1,"Number"],[[0,"do"],[1,"Boolean[][]"]]]],[[0,"the"],[1,"array:transform"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:enumerated-reduce"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Number"],[1,"Unknown"],[1,"Number"],[[0,"do"],[1,"Number"]]],[1,"Number"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"array:zip"],[[0,"lambda"],[1,"Unknown[]"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:unzip"],[[0,"lambda"],[1,"Unknown[]"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"array:push!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"array:append!"],[[0,"lambda"],[1,"Unknown[]"],[1,"Any"],[[0,"do"],[1,"Unknown[]"]]]],[[0,"the"],[1,"array:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"list:fold"],[[0,"lambda"],[1,"Unknown[]"],[[0,"lambda"],[1,"Unknown"],[1,"Unknown"],[[0,"do"],[1,"Any"]]],[1,"Unknown"],[[0,"do"],[1,"Unknown"]]]],[[0,"the"],[1,"bools:fold"],[[0,"lambda"],[1,"Boolean[]"],[[0,"lambda"],[1,"Boolean"],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]],[1,"Boolean"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:def-strict"],[[0,"lambda"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:get"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:set!"],[[0,"lambda"],[1,"Boolean[]"],[1,"Boolean"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:toggle!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:false!"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean[]"]]]],[[0,"the"],[1,"boole:true?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"boole:false?"],[[0,"lambda"],[1,"Boolean[]"],[[0,"do"],[1,"Boolean"]]]],[[0,"the"],[1,"from:string->array"],[[0,"lambda"],[1,"Number[]"],[1,"Number"],[[0,"do"],[1,"Unknown[][]"]]]],[[0,"the"],[1,"from:array->string"],[[0,"lambda"],[1,"Unknown[][]"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->integers"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:strings->floats"],[[0,"lambda"],[1,"Unknown[][]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:string->float"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:float->string"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->digits"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->chars"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:digits->integer"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Number"]]]],[[0,"the"],[1,"from:integer->digits"],[[0,"lambda"],[1,"Number"],[[0,"do"],[1,"Number[]"]]]],[[0,"the"],[1,"from:chars->set"],[[0,"lambda"],[1,"Number[]"],[[0,"do"],[1,"Unknown[][]"]]]]]
|
package/package.json
CHANGED
package/src/check.js
CHANGED
@@ -202,7 +202,11 @@ export const setTypeRef = (stats, value) =>
|
|
202
202
|
(isUnknownType(stats) || isAnyType(stats)) &&
|
203
203
|
(stats[TYPE_PROP] = value[TYPE_PROP])
|
204
204
|
export const setReturnRef = (stats, value) => {
|
205
|
-
if
|
205
|
+
// to prevent overiding the type of sepcial form or if the type of the function is any
|
206
|
+
// any could also be deliberate as some functions like array:get and array;first
|
207
|
+
// are sort of special forms too
|
208
|
+
// In general anything that has type of any should not be infered
|
209
|
+
if (SPECIAL_FORMS_SET.has(value[SIGNATURE]) || isAnyReturn(value)) {
|
206
210
|
return setReturn(stats, value)
|
207
211
|
}
|
208
212
|
return isUnknownReturn(stats) && (stats[RETURNS] = value[RETURNS])
|
@@ -213,6 +217,7 @@ export const setReturnToTypeRef = (stats, value) => {
|
|
213
217
|
(stats[RETURNS] = value[TYPE_PROP])
|
214
218
|
)
|
215
219
|
}
|
220
|
+
export const setStats = (a, b) => (a[STATS] = b[STATS])
|
216
221
|
export const setStatsRef = (a, b) => (a[STATS] = b[STATS])
|
217
222
|
export const setTypeToReturnRef = (stats, value) => {
|
218
223
|
// To prevent getters overwritting the array subtype
|
@@ -615,11 +620,9 @@ const resolveGetter = ({ rem, prop, name, env }) => {
|
|
615
620
|
setPropToAtom(env[name][STATS], prop)
|
616
621
|
setPropToSubReturn(env[name][STATS], prop, env[array[VALUE]][STATS])
|
617
622
|
} else if (!isAtom && isCollection) {
|
623
|
+
const [f, ...r] = env[array[VALUE]][STATS][RETURNS][1].types
|
618
624
|
setPropToReturn(env[name][STATS], prop, {
|
619
|
-
[RETURNS]: [
|
620
|
-
env[array[VALUE]][STATS][RETURNS][1].types[0],
|
621
|
-
new SubType(env[array[VALUE]][STATS][RETURNS][1].types.slice(1))
|
622
|
-
]
|
625
|
+
[RETURNS]: [f, new SubType(r)]
|
623
626
|
})
|
624
627
|
} else return false
|
625
628
|
} else return false
|
@@ -635,13 +638,9 @@ const resolveGetter = ({ rem, prop, name, env }) => {
|
|
635
638
|
setPropToAtom(env[name][STATS], prop)
|
636
639
|
setPropToSubType(env[name][STATS], prop, env[array[VALUE]][STATS])
|
637
640
|
} else if (!isAtom && isCollection) {
|
641
|
+
const [f, ...r] = env[array[VALUE]][STATS][TYPE_PROP][1].types
|
638
642
|
setPropToType(env[name][STATS], prop, {
|
639
|
-
[TYPE_PROP]: [
|
640
|
-
env[array[VALUE]][STATS][TYPE_PROP][1].types[0],
|
641
|
-
new SubType(
|
642
|
-
env[array[VALUE]][STATS][TYPE_PROP][1].types.slice(1)
|
643
|
-
)
|
644
|
-
]
|
643
|
+
[TYPE_PROP]: [f, new SubType(r)]
|
645
644
|
})
|
646
645
|
} else return false
|
647
646
|
} else return false
|
@@ -795,7 +794,7 @@ const initArrayType = ({ rem, env }) => {
|
|
795
794
|
subT.add(COLLECTION)
|
796
795
|
head = head[0]
|
797
796
|
}
|
798
|
-
if (head) subT.add(head[1].types[0])
|
797
|
+
if (head && head[1].types.length) subT.add(head[1].types[0])
|
799
798
|
}
|
800
799
|
const [main, sub] = ret[0]
|
801
800
|
if (isSubType(sub) && sub.types.at(-1) === COLLECTION) sub.types.pop()
|
package/src/macros.js
CHANGED
@@ -48,7 +48,8 @@ export const SUGGAR = {
|
|
48
48
|
DECREMENT_BY: '-=',
|
49
49
|
BOOLEAN_VARIABLE: 'boolean',
|
50
50
|
BOOLEAN_VARIABLE_GET: 'boole',
|
51
|
-
BOOLEAN_VARIABLE_SET: 'boole-set'
|
51
|
+
BOOLEAN_VARIABLE_SET: 'boole-set',
|
52
|
+
GET_ARRAY: 'array:get'
|
52
53
|
}
|
53
54
|
export const deSuggarAst = (ast, scope) => {
|
54
55
|
if (scope === undefined) scope = ast
|
@@ -569,7 +570,7 @@ export const deSuggarAst = (ast, scope) => {
|
|
569
570
|
let wrap = right
|
570
571
|
for (let i = 0; i < n; ++i) {
|
571
572
|
wrap = [
|
572
|
-
[APPLY,
|
573
|
+
[APPLY, SUGGAR.GET_ARRAY],
|
573
574
|
wrap,
|
574
575
|
[ATOM, 1]
|
575
576
|
]
|
@@ -577,17 +578,13 @@ export const deSuggarAst = (ast, scope) => {
|
|
577
578
|
return [
|
578
579
|
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
579
580
|
name,
|
580
|
-
[[APPLY,
|
581
|
+
[[APPLY, SUGGAR.GET_ARRAY], wrap, [ATOM, 0]]
|
581
582
|
]
|
582
583
|
})
|
583
584
|
if (lastLeft[VALUE] !== PLACEHOLDER) {
|
584
585
|
let wrap = right
|
585
586
|
for (let i = 0; i < vars.length; ++i) {
|
586
|
-
wrap = [
|
587
|
-
[APPLY, KEYWORDS.GET_ARRAY],
|
588
|
-
wrap,
|
589
|
-
[ATOM, 1]
|
590
|
-
]
|
587
|
+
wrap = [[APPLY, SUGGAR.GET_ARRAY], wrap, [ATOM, 1]]
|
591
588
|
}
|
592
589
|
newScope.push([
|
593
590
|
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
@@ -619,7 +616,7 @@ export const deSuggarAst = (ast, scope) => {
|
|
619
616
|
.map(([i]) => [
|
620
617
|
[APPLY, KEYWORDS.DEFINE_VARIABLE],
|
621
618
|
vars[i],
|
622
|
-
[[APPLY,
|
619
|
+
[[APPLY, SUGGAR.GET_ARRAY], right, [ATOM, i]]
|
623
620
|
])
|
624
621
|
if (isSlicing)
|
625
622
|
newScope.push([
|
package/src/types.js
CHANGED
@@ -37,10 +37,13 @@ export const NIL = 'nil'
|
|
37
37
|
export const TRUE_WORD = 'true'
|
38
38
|
export const FALSE_WORD = 'false'
|
39
39
|
export const GET_ARRAY_INFERENCE_SET = new Set([
|
40
|
+
KEYWORDS.GET_ARRAY,
|
40
41
|
'array:get',
|
41
|
-
'array:at'
|
42
|
-
|
43
|
-
|
42
|
+
'array:at',
|
43
|
+
'array:first',
|
44
|
+
'array:second',
|
45
|
+
'array:third',
|
46
|
+
'array:last'
|
44
47
|
])
|
45
48
|
export class SubType {
|
46
49
|
constructor(args) {
|