1160 lines
47 KiB
JSON
1160 lines
47 KiB
JSON
{
|
|
"my-3": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "a"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "c"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "a"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "c"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"repeat": {
|
|
"NodeType": "MacroDef",
|
|
"Name": {
|
|
"NodeType": "Identifier",
|
|
"Name": "repeat"
|
|
},
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Quasiquote",
|
|
"Expression": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "loop"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "counter"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "IfExpr",
|
|
"Condition": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": ">"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "counter"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ThenBranch": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
{
|
|
"NodeType": "Unquote",
|
|
"Expression": {
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Recur",
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "counter"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ElseBranch": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "loop"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Unquote",
|
|
"Expression": {
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"factorial": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "acc"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "TernaryExpr",
|
|
"Condition": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "<="
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ThenBranch": {
|
|
"NodeType": "Identifier",
|
|
"Name": "acc"
|
|
},
|
|
"ElseBranch": {
|
|
"NodeType": "Recur",
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "acc"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"my-add": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "a"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "a"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"my-square": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"CreateSMA": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "len"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "series"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "val"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
{
|
|
"NodeType": "Assignment",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
"Value": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "val"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Assignment",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
"Value": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Assignment",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
"Value": {
|
|
"NodeType": "TernaryExpr",
|
|
"Condition": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": ">"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "len"
|
|
}
|
|
]
|
|
},
|
|
"ThenBranch": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
{
|
|
"NodeType": "Indexer",
|
|
"Base": {
|
|
"NodeType": "Identifier",
|
|
"Name": "series"
|
|
},
|
|
"Index": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "len"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"ElseBranch": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "/"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum"
|
|
},
|
|
{
|
|
"NodeType": "TernaryExpr",
|
|
"Condition": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "<"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "len"
|
|
}
|
|
]
|
|
},
|
|
"ThenBranch": {
|
|
"NodeType": "Identifier",
|
|
"Name": "count"
|
|
},
|
|
"ElseBranch": {
|
|
"NodeType": "Identifier",
|
|
"Name": "len"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"linear-regression": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x-series"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "y-series"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Block",
|
|
"Expressions": [
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "series-count"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "series"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "Reduce"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "series"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "acc"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "item"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "acc"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "series-count"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x-series"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "Reduce"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x-series"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-y"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "Reduce"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "y-series"
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x-sq"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "Reduce"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "Map"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x-series"
|
|
},
|
|
{
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "Constant",
|
|
"Value": {
|
|
"Kind": "Scalar",
|
|
"Value": {
|
|
"Kind": "Ordinal",
|
|
"Value": 0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-xy"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-product"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x-series"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "y-series"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "m-numerator"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-xy"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "m-denominator"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x-sq"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "m"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "/"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "m-numerator"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "m-denominator"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "mean-x"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "/"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-x"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "mean-y"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "/"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "sum-y"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "n"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "VarDecl",
|
|
"Identifier": {
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
},
|
|
"Initializer": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "-"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "mean-y"
|
|
},
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "m"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "mean-x"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "+"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "FunctionCall",
|
|
"Callee": {
|
|
"NodeType": "Identifier",
|
|
"Name": "*"
|
|
},
|
|
"Arguments": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "m"
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "x"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "b"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"test2": {
|
|
"NodeType": "MacroDef",
|
|
"Name": {
|
|
"NodeType": "Identifier",
|
|
"Name": "test2"
|
|
},
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Quasiquote",
|
|
"Expression": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
],
|
|
"Body": {
|
|
"NodeType": "Unquote",
|
|
"Expression": {
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"debug-mode": {
|
|
"NodeType": "Keyword",
|
|
"Name": "true"
|
|
},
|
|
"test": {
|
|
"NodeType": "MacroDef",
|
|
"Name": {
|
|
"NodeType": "Identifier",
|
|
"Name": "test"
|
|
},
|
|
"Parameters": [
|
|
{
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
],
|
|
"Body": {
|
|
"NodeType": "Quasiquote",
|
|
"Expression": {
|
|
"NodeType": "LambdaExpr",
|
|
"Parameters": [
|
|
],
|
|
"Body": {
|
|
"NodeType": "Unquote",
|
|
"Expression": {
|
|
"NodeType": "Identifier",
|
|
"Name": "body"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |