From 315bf5164251eabaa19ae62c565062b2c898a33b Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:23:26 +0100 Subject: [PATCH 01/25] Update READMEs --- apiel-cli/README.md | 60 ++++++++++++++++++++++++++++++----------- apiel/README.md | 65 +++++++++++++++++++++++++++++---------------- 2 files changed, 86 insertions(+), 39 deletions(-) diff --git a/apiel-cli/README.md b/apiel-cli/README.md index 3ed767a..bebff34 100644 --- a/apiel-cli/README.md +++ b/apiel-cli/README.md @@ -1,16 +1,44 @@ -# apiel -This is the cli tool to showcase **apiel**. - -**apiel** is a small subset of the [APL programming language](https://en.wikipedia.org/wiki/APL_(programming_language)) implemented in Rust. - -## Affiliation - -This was created as a capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp), a Rust bootcamp organized by the Ukrainian Rust Community ([website](https://www.uarust.com), [linked in](https://www.linkedin.com/company/ukrainian-rust-community), [telegram](https://t.me/rustlang_ua), [github](https://github.com/rust-lang-ua), [youtube](https://www.youtube.com/channel/UCmkAFUu2MVOX8ly0LjB6TMA), [twitter](https://twitter.com/rustukraine)). - -## Usage - -```cargo run``` or ```RUST_LOG=debug cargo run``` for debugging output. - -Enter commands in the terminal. - -The list of supported glyphs can be found in the [main README](../README.md). +# apiel-cli + +Interactive REPL for [apiel](https://crates.io/crates/apiel), a subset of the APL programming language implemented in Rust. + +## Install + +``` +cargo install apiel-cli +``` + +## Usage + +``` +$ apiel-cli +>>> ⍳ 5 +1 2 3 4 5 +>>> +/ ⍳ 10 +55 +>>> 2 3 ⍴ ⍳ 6 +1 2 3 4 5 6 +>>> ⍴ 2 3 ⍴ ⍳ 6 +2 3 +>>> ⌽ 'hello' +olleh +``` + +Variables and functions persist across lines: + +``` +>>> data←⍳ 10 +>>> +/ data +55 +>>> double←{⍵×2} +>>> double 1 2 3 +2 4 6 +>>> {⍵≤1: ⍵ ⋄ ⍵×∇ ⍵-1} 5 +120 +``` + +See the [apiel](https://crates.io/crates/apiel) crate for the full support info. + +## Affiliation + +Capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp) by the [Ukrainian Rust Community](https://www.uarust.com). diff --git a/apiel/README.md b/apiel/README.md index 8866918..5fbeecb 100644 --- a/apiel/README.md +++ b/apiel/README.md @@ -1,23 +1,42 @@ -# apiel -This is the library crate for the **apiel** interpreter. - -**apiel** is a small subset of the [APL programming language](https://en.wikipedia.org/wiki/APL_(programming_language)) implemented in Rust. - -The ultimate goal of the project is to export a macro that allows evaluating APL expressions from Rust code, providing a way to solve some problems in a very conscise manner. - -## Affiliation - -This was created as a capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp), a Rust bootcamp organized by the Ukrainian Rust Community ([website](https://www.uarust.com), [linked in](https://www.linkedin.com/company/ukrainian-rust-community), [telegram](https://t.me/rustlang_ua), [github](https://github.com/rust-lang-ua), [youtube](https://www.youtube.com/channel/UCmkAFUu2MVOX8ly0LjB6TMA), [twitter](https://twitter.com/rustukraine)). - -## Usage - -Add the crate to the project. - -Call the `parse_and_evaluate()` function: - -```rust -match apiel::parse::parse_and_evaluate(&line) { - Ok(result) => println!("Result: {:?}", result), - Err(err) => (), // process the error -} -``` +# apiel + +A subset of the [APL programming language](https://en.wikipedia.org/wiki/APL_(programming_language)) implemented in Rust. Evaluate APL expressions from Rust code through the `apl!` macro. + +## Usage + +```rust +use apiel::apl; + +// Evaluate APL expressions +let sum = apl!("+/ ⍳ 10").unwrap(); // [55.0] +let mat = apl!("⍴ 2 3 ⍴ ⍳ 6").unwrap(); // [2.0, 3.0] +let fib = apl!("{⍵<2: ⍵ ⋄ (∇ ⍵-1)+∇ ⍵-2} 10").unwrap(); // [55.0] + +// Pass Rust data as ⍵ (right argument) +let result = apl!("+/ ⍵", omega: &[1.0, 2.0, 3.0, 4.0, 5.0]).unwrap(); // [15.0] + +// Pass both ⍺ (left) and ⍵ (right) +let result = apl!("⍺ × ⍵", alpha: &[10.0], omega: &[1.0, 2.0, 3.0]).unwrap(); // [10.0, 20.0, 30.0] + +// Shared environment -- variables persist across calls +let mut env = apiel::Env::new(); +apl!("data←⍳ 10", &mut env).unwrap(); +apl!("total←+/ data", &mut env).unwrap(); +let result = apl!("total", &mut env).unwrap(); // [55.0] + +// Define and call named functions +apl!("double←{⍵×2}", &mut env).unwrap(); +apl!("double 1 2 3", &mut env).unwrap(); // [2.0, 4.0, 6.0] +``` + +## What's supported + +- **Arithmetic**: `+` `-` `×` `÷` `*` `⍟` `○` `!` `?` `|` `⌈` `⌊` `⌹` +- **Arrays**: `⍴` `,` `⌽` `⍉` `↑` `↓` `⍋` `⍒` `⊂` `⊃` `⊆` `⌷` `∪` `∩` `~` +- **Comparison**: `=` `≠` `<` `>` `≤` `≥` `∧` `∨` `⍲` `⍱` +- **Operators**: `/` (reduce) `\` (scan) `∘.` (outer product) `f.g` (inner product) `¨` (each) +- **Language**: `←` assignment, `{⍵}` dfns, `∇` recursion, `⋄` `:` guards, `¯` high minus, `'...'` strings, `⊥` `⊤` encode/decode + +## Affiliation + +Capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp) by the [Ukrainian Rust Community](https://www.uarust.com). From 33ab206aec27bac3e6799b622b8ac0f9aaf34537 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:25:43 +0100 Subject: [PATCH 02/25] Fix repository link in crate metadata --- apiel-cli/Cargo.toml | 2 +- apiel/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apiel-cli/Cargo.toml b/apiel-cli/Cargo.toml index 25f83df..73e76cb 100644 --- a/apiel-cli/Cargo.toml +++ b/apiel-cli/Cargo.toml @@ -7,7 +7,7 @@ description = "Interactive REPL for apiel, a subset of the APL programming langu keywords = ["apl", "array", "repl", "interpreter"] categories = ["command-line-utilities", "mathematics"] homepage = "https://github.com/NamesMark/apiel" -repository = "https://github.com/NamesMark/apiel/apiel-cli" +repository = "https://github.com/NamesMark/apiel/tree/main/apiel-cli" license = "MIT" [[bin]] diff --git a/apiel/Cargo.toml b/apiel/Cargo.toml index eefe2e1..af3c0e2 100644 --- a/apiel/Cargo.toml +++ b/apiel/Cargo.toml @@ -7,7 +7,7 @@ description = "A subset of the APL programming language implemented in Rust. Exp keywords = ["apl", "array", "interpreter", "language", "math"] categories = ["mathematics", "compilers"] homepage = "https://github.com/NamesMark/apiel" -repository = "https://github.com/NamesMark/apiel/apiel" +repository = "https://github.com/NamesMark/apiel/tree/main/apiel" license = "MIT" build = "build.rs" From 2ba277837ff9be270a4a58078bde39f3e682129f Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:34:51 +0100 Subject: [PATCH 03/25] =?UTF-8?q?Add=20identity=20functions=20=E2=8A=A3=20?= =?UTF-8?q?=E2=8A=A2=20(left/right=20tack)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 2 ++ apiel/src/apiel.y | 30 ++++++++++++++++++++++++++++++ apiel/src/parse/eval.rs | 20 ++++++++++++++++++++ apiel/tests/reference.rs | 9 +++++++++ 4 files changed, 61 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 3ea6357..a50be37 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -57,6 +57,8 @@ \⌷ "INDEX" \⌹ "MATINV" '[^']*' "STRING" +\⊣ "LEFT" +\⊢ "RIGHT" \⋄ "DIAMOND" : ":" \( "(" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 6543b93..27ffacc 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -149,6 +149,12 @@ Term -> Result: | Factor 'ENCODE' Term { Ok(Expr::Encode{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'LEFT' Term { + Ok(Expr::Left{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } + | Factor 'RIGHT' Term { + Ok(Expr::Right{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor Operator 'DOT' Operator Term { match ($2, $4) { (Ok(f), Ok(g)) => Ok(Expr::InnerProduct{ span: $span, lhs: Box::new($1?), f, g, rhs: Box::new($5?) }), @@ -253,6 +259,12 @@ MonadicFactor -> Result: | 'MATINV' Term { Ok(Expr::MatrixInverse{ span: $span, arg: Box::new($2?) }) } + | 'LEFT' Term { + Ok(Expr::LeftIdentity{ span: $span, arg: Box::new($2?) }) + } + | 'RIGHT' Term { + Ok(Expr::RightIdentity{ span: $span, arg: Box::new($2?) }) + } | 'RHO' 'EACH' Term { Ok(Expr::MonadicEach{ span: $span, func: "shape".to_string(), arg: Box::new($3?) }) } @@ -669,6 +681,16 @@ pub enum Expr { lhs: Box, rhs: Box, }, + Left { + span: Span, + lhs: Box, + rhs: Box, + }, + Right { + span: Span, + lhs: Box, + rhs: Box, + }, StringLiteral { span: Span, }, @@ -774,6 +796,14 @@ pub enum Expr { span: Span, arg: Box, }, + LeftIdentity { + span: Span, + arg: Box, + }, + RightIdentity { + span: Span, + arg: Box, + }, Reduce { span: Span, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index c272280..4a22c81 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1611,6 +1611,26 @@ pub fn eval( Ok(Val::new(vec![n, b_cols], data)) } } + Expr::Left { span: _, lhs, rhs } => { + debug!("Dyadic Left"); + let lhs_eval = eval(lexer, *lhs, env)?; + let _rhs_eval = eval(lexer, *rhs, env)?; + Ok(lhs_eval) + } + Expr::Right { span: _, lhs, rhs } => { + debug!("Dyadic Right"); + let _lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + Ok(rhs_eval) + } + Expr::LeftIdentity { span: _, arg } => { + debug!("Monadic Left (identity)"); + eval(lexer, *arg, env) + } + Expr::RightIdentity { span: _, arg } => { + debug!("Monadic Right (identity)"); + eval(lexer, *arg, env) + } Expr::StringLiteral { span } => { debug!("String Literal"); let raw = lexer.span_str(span); diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 4822a9f..3d91fa7 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -407,6 +407,15 @@ fn reference_tests() { &[10.0, 30.0, 50.0], "index vector", ), + // Identity functions ⊣ ⊢ + ("⊢ 42", &[42.0], "monadic right tack (identity)"), + ("⊢ 1 2 3", &[1.0, 2.0, 3.0], "monadic right tack vector"), + ("⊣ 42", &[42.0], "monadic left tack (identity)"), + ("⊣ 1 2 3", &[1.0, 2.0, 3.0], "monadic left tack vector"), + ("5 ⊢ 42", &[42.0], "dyadic right tack returns right"), + ("5 ⊣ 42", &[5.0], "dyadic left tack returns left"), + ("1 2 3 ⊢ 4 5 6", &[4.0, 5.0, 6.0], "dyadic right tack vectors"), + ("1 2 3 ⊣ 4 5 6", &[1.0, 2.0, 3.0], "dyadic left tack vectors"), ]; let mut failures = Vec::new(); From ec58497b6de7bf9e2154e0204ccae60a16b94589 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:38:35 +0100 Subject: [PATCH 04/25] =?UTF-8?q?Add=20tally=20=E2=89=A2,=20depth=20?= =?UTF-8?q?=E2=89=A1,=20match,=20not-match?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 2 ++ apiel/src/apiel.y | 30 ++++++++++++++++++++++++++++++ apiel/src/parse/eval.rs | 23 +++++++++++++++++++++++ apiel/src/parse/val.rs | 30 ++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index a50be37..04c9ca2 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -59,6 +59,8 @@ '[^']*' "STRING" \⊣ "LEFT" \⊢ "RIGHT" +\≡ "MATCH" +\≢ "NOTMATCH" \⋄ "DIAMOND" : ":" \( "(" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 27ffacc..7c4af18 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -155,6 +155,12 @@ Term -> Result: | Factor 'RIGHT' Term { Ok(Expr::Right{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'MATCH' Term { + Ok(Expr::Match{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } + | Factor 'NOTMATCH' Term { + Ok(Expr::NotMatch{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor Operator 'DOT' Operator Term { match ($2, $4) { (Ok(f), Ok(g)) => Ok(Expr::InnerProduct{ span: $span, lhs: Box::new($1?), f, g, rhs: Box::new($5?) }), @@ -265,6 +271,12 @@ MonadicFactor -> Result: | 'RIGHT' Term { Ok(Expr::RightIdentity{ span: $span, arg: Box::new($2?) }) } + | 'MATCH' Term { + Ok(Expr::Depth{ span: $span, arg: Box::new($2?) }) + } + | 'NOTMATCH' Term { + Ok(Expr::Tally{ span: $span, arg: Box::new($2?) }) + } | 'RHO' 'EACH' Term { Ok(Expr::MonadicEach{ span: $span, func: "shape".to_string(), arg: Box::new($3?) }) } @@ -691,6 +703,16 @@ pub enum Expr { lhs: Box, rhs: Box, }, + Match { + span: Span, + lhs: Box, + rhs: Box, + }, + NotMatch { + span: Span, + lhs: Box, + rhs: Box, + }, StringLiteral { span: Span, }, @@ -804,6 +826,14 @@ pub enum Expr { span: Span, arg: Box, }, + Depth { + span: Span, + arg: Box, + }, + Tally { + span: Span, + arg: Box, + }, Reduce { span: Span, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 4a22c81..d87e233 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1631,6 +1631,29 @@ pub fn eval( debug!("Monadic Right (identity)"); eval(lexer, *arg, env) } + Expr::Tally { span: _, arg } => { + debug!("Monadic Tally"); + let arg_eval = eval(lexer, *arg, env)?; + let tally = if arg_eval.shape.is_empty() { 1 } else { arg_eval.shape[0] }; + Ok(Val::scalar(Scalar::Integer(tally as i64))) + } + Expr::Depth { span: _, arg } => { + debug!("Monadic Depth"); + let arg_eval = eval(lexer, *arg, env)?; + Ok(Val::scalar(Scalar::Integer(arg_eval.depth() as i64))) + } + Expr::Match { span: _, lhs, rhs } => { + debug!("Dyadic Match"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + Ok(Val::scalar(Scalar::Integer(if lhs_eval.matches_val(&rhs_eval) { 1 } else { 0 }))) + } + Expr::NotMatch { span: _, lhs, rhs } => { + debug!("Dyadic Not Match"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + Ok(Val::scalar(Scalar::Integer(if lhs_eval.matches_val(&rhs_eval) { 0 } else { 1 }))) + } Expr::StringLiteral { span } => { debug!("String Literal"); let raw = lexer.span_str(span); diff --git a/apiel/src/parse/val.rs b/apiel/src/parse/val.rs index 9aa6a87..07db028 100644 --- a/apiel/src/parse/val.rs +++ b/apiel/src/parse/val.rs @@ -298,6 +298,36 @@ impl Val { self.shape.is_empty() } + pub fn depth(&self) -> usize { + if self.is_scalar() { + match &self.data[0] { + Scalar::Nested(inner) => 1 + inner.depth(), + _ => 0, + } + } else { + let has_nested = self.data.iter().any(|s| matches!(s, Scalar::Nested(_))); + if has_nested { + 1 + self.data.iter().map(|s| match s { + Scalar::Nested(inner) => inner.depth(), + _ => 0, + }).max().unwrap_or(0) + } else { + 1 + } + } + } + + pub fn matches_val(&self, other: &Val) -> bool { + self.shape == other.shape + && self.data.len() == other.data.len() + && self.data.iter().zip(other.data.iter()).all(|(a, b)| { + match (a, b) { + (Scalar::Nested(va), Scalar::Nested(vb)) => va.matches_val(vb), + _ => a == b, + } + }) + } + pub fn from_f64s(values: &[f64]) -> Self { let data: Vec = values .iter() diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 3d91fa7..5864970 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -416,6 +416,9 @@ fn reference_tests() { ("5 ⊣ 42", &[5.0], "dyadic left tack returns left"), ("1 2 3 ⊢ 4 5 6", &[4.0, 5.0, 6.0], "dyadic right tack vectors"), ("1 2 3 ⊣ 4 5 6", &[1.0, 2.0, 3.0], "dyadic left tack vectors"), + // Tally ≢ + ("≢ 1 2 3 4 5", &[5.0], "tally of vector"), + ("≢ 42", &[1.0], "tally of scalar"), ]; let mut failures = Vec::new(); @@ -605,3 +608,32 @@ fn nested_arrays() { let val = eval_to_val("⌽¨ (⊂ 1 2 3) , (⊂ 4 5) , (⊂ 6)", &mut env).unwrap(); assert_eq!(format_val(&val), "(3 2 1) (5 4) (6)"); } + +#[test] +fn depth_and_match() { + let mut env = Env::new(); + + let val = eval_to_val("≡ 42", &mut env).unwrap(); + assert_eq!(format_val(&val), "0", "depth of scalar"); + + let val = eval_to_val("≡ 1 2 3", &mut env).unwrap(); + assert_eq!(format_val(&val), "1", "depth of flat vector"); + + let val = eval_to_val("≡ ⊂ 1 2 3", &mut env).unwrap(); + assert_eq!(format_val(&val), "2", "depth of enclosed vector"); + + let val = eval_to_val("1 2 3 ≡ 1 2 3", &mut env).unwrap(); + assert_eq!(format_val(&val), "1", "match identical vectors"); + + let val = eval_to_val("1 2 3 ≡ 1 2 4", &mut env).unwrap(); + assert_eq!(format_val(&val), "0", "match different vectors"); + + let val = eval_to_val("1 2 3 ≢ 1 2 4", &mut env).unwrap(); + assert_eq!(format_val(&val), "1", "not match different vectors"); + + let val = eval_to_val("1 2 3 ≢ 1 2 3", &mut env).unwrap(); + assert_eq!(format_val(&val), "0", "not match identical vectors"); + + let val = eval_to_val("(2 3 ⍴ ⍳ 6) ≡ 1 2 3 4 5 6", &mut env).unwrap(); + assert_eq!(format_val(&val), "0", "match: different shapes"); +} From 52848a4a44ca33956ac54397b1633853b423553b Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:40:25 +0100 Subject: [PATCH 05/25] =?UTF-8?q?Add=20find=20=E2=8D=B7=20(subsequence=20s?= =?UTF-8?q?earch)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 8 ++++++++ apiel/src/parse/eval.rs | 18 ++++++++++++++++++ apiel/tests/reference.rs | 5 +++++ 4 files changed, 32 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 04c9ca2..676b45e 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -61,6 +61,7 @@ \⊢ "RIGHT" \≡ "MATCH" \≢ "NOTMATCH" +\⍷ "FIND" \⋄ "DIAMOND" : ":" \( "(" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 7c4af18..8c6ff46 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -161,6 +161,9 @@ Term -> Result: | Factor 'NOTMATCH' Term { Ok(Expr::NotMatch{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'FIND' Term { + Ok(Expr::Find{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor Operator 'DOT' Operator Term { match ($2, $4) { (Ok(f), Ok(g)) => Ok(Expr::InnerProduct{ span: $span, lhs: Box::new($1?), f, g, rhs: Box::new($5?) }), @@ -713,6 +716,11 @@ pub enum Expr { lhs: Box, rhs: Box, }, + Find { + span: Span, + lhs: Box, + rhs: Box, + }, StringLiteral { span: Span, }, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index d87e233..b8c41ef 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1654,6 +1654,24 @@ pub fn eval( let rhs_eval = eval(lexer, *rhs, env)?; Ok(Val::scalar(Scalar::Integer(if lhs_eval.matches_val(&rhs_eval) { 0 } else { 1 }))) } + Expr::Find { span: _, lhs, rhs } => { + debug!("Dyadic Find"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + let pattern = &lhs_eval.data; + let data = &rhs_eval.data; + let plen = pattern.len(); + let dlen = data.len(); + let mut result = vec![Scalar::Integer(0); dlen]; + if plen > 0 && plen <= dlen { + for i in 0..=(dlen - plen) { + if data[i..i + plen].iter().zip(pattern.iter()).all(|(a, b)| a == b) { + result[i] = Scalar::Integer(1); + } + } + } + Ok(Val::new(rhs_eval.shape.clone(), result)) + } Expr::StringLiteral { span } => { debug!("String Literal"); let raw = lexer.span_str(span); diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 5864970..379b6e4 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -419,6 +419,11 @@ fn reference_tests() { // Tally ≢ ("≢ 1 2 3 4 5", &[5.0], "tally of vector"), ("≢ 42", &[1.0], "tally of scalar"), + // Find ⍷ + ("2 3 ⍷ 1 2 3 4 5", &[0.0, 1.0, 0.0, 0.0, 0.0], "find subsequence"), + ("5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 0.0, 0.0, 1.0], "find single element"), + ("3 4 5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 1.0, 0.0, 0.0], "find at end"), + ("9 ⍷ 1 2 3", &[0.0, 0.0, 0.0], "find missing element"), ]; let mut failures = Vec::new(); From fb9bb7aa8c13943e359bc74fb5d7ebe62384ad6b Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:42:32 +0100 Subject: [PATCH 06/25] Extend Operator with all dyadic primitives for reduce/scan/product --- apiel/src/apiel.y | 22 ++++++++++++++ apiel/src/parse/eval.rs | 65 ++++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 7 +++++ 3 files changed, 94 insertions(+) diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 8c6ff46..7f36f76 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -383,10 +383,21 @@ Factor -> Result: | '×' { Ok(Operator::Multiply) } | '÷' { Ok(Operator::Divide) } | 'EQ' { Ok(Operator::Equal) } + | 'NEQ' { Ok(Operator::NotEqual) } | 'LT' { Ok(Operator::LessThan) } | 'GT' { Ok(Operator::GreaterThan) } + | 'LTE' { Ok(Operator::LessEqual) } + | 'GTE' { Ok(Operator::GreaterEqual) } | '⌈' { Ok(Operator::Max) } | '⌊' { Ok(Operator::Min) } + | 'AND' { Ok(Operator::And) } + | 'OR' { Ok(Operator::Or) } + | 'NAND' { Ok(Operator::Nand) } + | 'NOR' { Ok(Operator::Nor) } + | 'EXP' { Ok(Operator::Power) } + | 'LOG' { Ok(Operator::Log) } + | '|' { Ok(Operator::Residue) } + | '!' { Ok(Operator::Binomial) } ; @@ -870,8 +881,19 @@ pub enum Operator { Multiply, Divide, Equal, + NotEqual, LessThan, GreaterThan, + LessEqual, + GreaterEqual, Max, Min, + And, + Or, + Nand, + Nor, + Power, + Log, + Residue, + Binomial, } diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index b8c41ef..98c4a38 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -99,10 +99,75 @@ fn get_operator_fn(op: Operator) -> fn(&Scalar, &Scalar) -> Option { Operator::Multiply => |a, b| a.checked_mul(b), Operator::Divide => |a, b| a.checked_div(b), Operator::Equal => |a, b| Some(Scalar::Integer(if a == b { 1 } else { 0 })), + Operator::NotEqual => |a, b| Some(Scalar::Integer(if a != b { 1 } else { 0 })), Operator::LessThan => |a, b| Some(Scalar::Integer(if a < b { 1 } else { 0 })), Operator::GreaterThan => |a, b| Some(Scalar::Integer(if a > b { 1 } else { 0 })), + Operator::LessEqual => |a, b| Some(Scalar::Integer(if a <= b { 1 } else { 0 })), + Operator::GreaterEqual => |a, b| Some(Scalar::Integer(if a >= b { 1 } else { 0 })), Operator::Max => |a, b| Some(if a >= b { a.clone() } else { b.clone() }), Operator::Min => |a, b| Some(if a <= b { a.clone() } else { b.clone() }), + Operator::And => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + Some(Scalar::Integer(if af != 0.0 && bf != 0.0 { 1 } else { 0 })) + }, + Operator::Or => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + Some(Scalar::Integer(if af != 0.0 || bf != 0.0 { 1 } else { 0 })) + }, + Operator::Nand => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + Some(Scalar::Integer(if af != 0.0 && bf != 0.0 { 0 } else { 1 })) + }, + Operator::Nor => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + Some(Scalar::Integer(if af != 0.0 || bf != 0.0 { 0 } else { 1 })) + }, + Operator::Power => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + let result = af.powf(bf); + if result.fract() == 0.0 && result.abs() < i64::MAX as f64 { + Some(Scalar::Integer(result as i64)) + } else { + Some(Scalar::Float(result)) + } + }, + Operator::Log => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + Some(Scalar::Float(bf.ln() / af.ln())) + }, + Operator::Residue => |a, b| { + let af: f64 = a.clone().into(); + let bf: f64 = b.clone().into(); + if af == 0.0 { + Some(Scalar::Float(bf)) + } else { + let r = bf % af; + if r.fract() == 0.0 && r.abs() < i64::MAX as f64 { + Some(Scalar::Integer(r as i64)) + } else { + Some(Scalar::Float(r)) + } + } + }, + Operator::Binomial => |a, b| { + let n: f64 = b.clone().into(); + let k: f64 = a.clone().into(); + let mut result = 1.0_f64; + for i in 0..k as u64 { + result *= (n - i as f64) / (i as f64 + 1.0); + } + if result.fract() == 0.0 && result.abs() < i64::MAX as f64 { + Some(Scalar::Integer(result as i64)) + } else { + Some(Scalar::Float(result)) + } + }, } } diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 379b6e4..9d47f42 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -424,6 +424,13 @@ fn reference_tests() { ("5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 0.0, 0.0, 1.0], "find single element"), ("3 4 5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 1.0, 0.0, 0.0], "find at end"), ("9 ⍷ 1 2 3", &[0.0, 0.0, 0.0], "find missing element"), + // Extended operator reductions + ("∧/ 1 1 1 0", &[0.0], "and-reduce"), + ("∧/ 1 1 1 1", &[1.0], "and-reduce all true"), + ("∨/ 0 0 1 0", &[1.0], "or-reduce (any)"), + ("∨/ 0 0 0 0", &[0.0], "or-reduce all false"), + ("≠/ 1 0 1 1", &[1.0], "neq-reduce (parity)"), + ("1 2 3 ∘.≤ 1 2 3", &[1.0,1.0,1.0, 0.0,1.0,1.0, 0.0,0.0,1.0], "outer product leq"), ]; let mut failures = Vec::new(); From 03e37b88fdd0494ae9217c4d7aa7f9275c5f7c80 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 01:45:09 +0100 Subject: [PATCH 07/25] =?UTF-8?q?Add=20commute/selfie=20operator=20?= =?UTF-8?q?=E2=8D=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 23 +++++++++++++++++++++++ apiel/src/parse/eval.rs | 24 ++++++++++++++++++++++++ apiel/tests/reference.rs | 7 +++++++ 4 files changed, 55 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 676b45e..6b4dd29 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -48,6 +48,7 @@ \⊃ "FIRST" \⊆ "PARTITION" \¨ "EACH" +\⍨ "COMMUTE" \∪ "UNIQUE" \∩ "INTERSECT" \~ "TILDE" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 7f36f76..46d6d98 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -176,6 +176,12 @@ Term -> Result: Err(_) => Err(()) } } + | Factor Operator 'COMMUTE' Term { + match $2 { + Ok(op) => Ok(Expr::Commute{ span: $span, lhs: Box::new($1?), operator: op, rhs: Box::new($4?) }), + Err(_) => Err(()) + } + } | MonadicFactor { Ok($1?) } @@ -289,6 +295,12 @@ MonadicFactor -> Result: | 'IOTA' 'EACH' Term { Ok(Expr::MonadicEach{ span: $span, func: "iota".to_string(), arg: Box::new($3?) }) } + | Operator 'COMMUTE' Term { + match $1 { + Ok(op) => Ok(Expr::Selfie{ span: $span, operator: op, arg: Box::new($3?) }), + Err(_) => Err(()) + } + } ; DfnBody -> Result: @@ -680,6 +692,17 @@ pub enum Expr { operator: Operator, rhs: Box, }, + Commute { + span: Span, + lhs: Box, + operator: Operator, + rhs: Box, + }, + Selfie { + span: Span, + operator: Operator, + arg: Box, + }, ReduceEach { span: Span, operator: Operator, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 98c4a38..f896df0 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1749,6 +1749,30 @@ pub fn eval( Ok(Val::vector(data)) } } + Expr::Commute { + span, + lhs, + operator, + rhs, + } => { + debug!("Dyadic Commute"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + let op_fn = get_operator_fn(operator); + // Swap: apply as (rhs op lhs) instead of (lhs op rhs) + apply_dyadic_operation(span, &rhs_eval, &lhs_eval, |a, b| { + op_fn(a, b).ok_or_eyre("Commute operation failed") + }) + } + Expr::Selfie { span, operator, arg } => { + debug!("Monadic Selfie"); + let arg_eval = eval(lexer, *arg, env)?; + let op_fn = get_operator_fn(operator); + // Apply as (arg op arg) + apply_dyadic_operation(span, &arg_eval, &arg_eval, |a, b| { + op_fn(a, b).ok_or_eyre("Selfie operation failed") + }) + } Expr::ScalarFloat { span, .. } => { debug!("Scalar Float"); lexer diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 9d47f42..b4e2bae 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -431,6 +431,13 @@ fn reference_tests() { ("∨/ 0 0 0 0", &[0.0], "or-reduce all false"), ("≠/ 1 0 1 1", &[1.0], "neq-reduce (parity)"), ("1 2 3 ∘.≤ 1 2 3", &[1.0,1.0,1.0, 0.0,1.0,1.0, 0.0,0.0,1.0], "outer product leq"), + // Commute ⍨ + ("+⍨ 3", &[6.0], "selfie: 3+3"), + ("+⍨ 1 2 3", &[2.0, 4.0, 6.0], "selfie vector: double"), + ("×⍨ 1 2 3", &[1.0, 4.0, 9.0], "selfie: square"), + ("2 -⍨ 5", &[3.0], "commute: 5-2"), + ("3 ÷⍨ 12", &[4.0], "commute: 12÷3"), + ("2 *⍨ 3", &[9.0], "commute: 3*2=9"), ]; let mut failures = Vec::new(); From 00c9727a0af8e0fd6a3716f7d431f4b677d174db Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 10:18:12 +0100 Subject: [PATCH 08/25] =?UTF-8?q?Add=20power=20operator=20=E2=8D=A3=20(rep?= =?UTF-8?q?eat=20function=20n=20times)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 9 +++++++++ apiel/src/parse/eval.rs | 19 +++++++++++++++++++ apiel/tests/reference.rs | 4 ++++ 4 files changed, 33 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 6b4dd29..64d6298 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -48,6 +48,7 @@ \⊃ "FIRST" \⊆ "PARTITION" \¨ "EACH" +\⍣ "POWOP" \⍨ "COMMUTE" \∪ "UNIQUE" \∩ "INTERSECT" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 46d6d98..44cdf00 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -119,6 +119,9 @@ Term -> Result: | '{' DfnBody '}' Term { Ok(Expr::MonadicDfn{ span: $span, body: Box::new($2?), rhs: Box::new($4?) }) } + | '{' DfnBody '}' 'POWOP' Factor Term { + Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) + } | 'NAME' Factor { Ok(Expr::NamedMonadic{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), rhs: Box::new($2?) }) } @@ -589,6 +592,12 @@ pub enum Expr { body: Box, rhs: Box, }, + PowerOp { + span: Span, + body: Box, + count: Box, + arg: Box, + }, DyadicDfn { span: Span, lhs: Box, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index f896df0..c9e6e33 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1088,6 +1088,25 @@ pub fn eval( dfn_env.fns.insert("∇".to_string(), stored); eval(lexer, (*body_rc).clone(), &mut dfn_env) } + Expr::PowerOp { span, body, count, arg } => { + debug!("Power Operator (dfn)"); + let count_val = eval(lexer, *count, env)?; + let n: usize = count_val.data[0].clone().try_into() + .map_err(|_| (span, "Power operator count must be a non-negative integer"))?; + let mut current = eval(lexer, *arg, env)?; + let body_rc = Rc::new(*body); + for _ in 0..n { + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍵".to_string(), current); + dfn_env.fns.insert("∇".to_string(), stored); + current = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + } + Ok(current) + } Expr::DyadicDfn { span, lhs, diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index b4e2bae..c9c09ce 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -438,6 +438,10 @@ fn reference_tests() { ("2 -⍨ 5", &[3.0], "commute: 5-2"), ("3 ÷⍨ 12", &[4.0], "commute: 12÷3"), ("2 *⍨ 3", &[9.0], "commute: 3*2=9"), + // Power operator ⍣ + ("{⍵+1}⍣3 ⍳ 5", &[4.0, 5.0, 6.0, 7.0, 8.0], "power: increment 3 times"), + ("{⍵×2}⍣4 (1)", &[16.0], "power: double 4 times"), + ("{⍵+1}⍣0 (5)", &[5.0], "power 0 is identity"), ]; let mut failures = Vec::new(); From 8abf42684443e51d12ae1e580cf33ec7b4f7166e Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 10:20:55 +0100 Subject: [PATCH 09/25] =?UTF-8?q?Add=20compose=20operator=20=E2=88=98=20fo?= =?UTF-8?q?r=20dfn=20composition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 19 +++++++++++++++++++ apiel/src/parse/eval.rs | 26 ++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 +++ 4 files changed, 49 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 64d6298..c175ce9 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -40,6 +40,7 @@ \⍋ "GRADEUP" \⍒ "GRADEDN" ∘\. "OUTERPRODUCT" +\∘ "COMPOSE" \← "ASSIGN" \⍵ "OMEGA" \⍺ "ALPHA" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 44cdf00..1231d1e 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -119,6 +119,12 @@ Term -> Result: | '{' DfnBody '}' Term { Ok(Expr::MonadicDfn{ span: $span, body: Box::new($2?), rhs: Box::new($4?) }) } + | '{' DfnBody '}' 'COMPOSE' '{' DfnBody '}' Term { + Ok(Expr::ComposeDfn{ span: $span, f: Box::new($2?), g: Box::new($6?), arg: Box::new($8?) }) + } + | Factor '{' DfnBody '}' 'COMPOSE' '{' DfnBody '}' Term { + Ok(Expr::ComposeDyadicDfn{ span: $span, lhs: Box::new($1?), f: Box::new($3?), g: Box::new($7?), arg: Box::new($9?) }) + } | '{' DfnBody '}' 'POWOP' Factor Term { Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) } @@ -778,6 +784,19 @@ pub enum Expr { operator: Operator, term: Box, }, + ComposeDfn { + span: Span, + f: Box, + g: Box, + arg: Box, + }, + ComposeDyadicDfn { + span: Span, + lhs: Box, + f: Box, + g: Box, + arg: Box, + }, // Monadic diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index c9e6e33..eb706e4 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1127,6 +1127,32 @@ pub fn eval( dfn_env.fns.insert("∇".to_string(), stored); eval(lexer, (*body_rc).clone(), &mut dfn_env) } + Expr::ComposeDfn { span: _, f, g, arg } => { + debug!("Compose (monadic)"); + let arg_val = eval(lexer, *arg, env)?; + // First apply g monadically + let mut g_env = env.clone(); + g_env.vars.insert("⍵".to_string(), arg_val); + let g_result = eval(lexer, *g, &mut g_env)?; + // Then apply f monadically + let mut f_env = env.clone(); + f_env.vars.insert("⍵".to_string(), g_result); + eval(lexer, *f, &mut f_env) + } + Expr::ComposeDyadicDfn { span: _, lhs, f, g, arg } => { + debug!("Compose (dyadic)"); + let lhs_val = eval(lexer, *lhs, env)?; + let arg_val = eval(lexer, *arg, env)?; + // Apply g monadically to right arg + let mut g_env = env.clone(); + g_env.vars.insert("⍵".to_string(), arg_val); + let g_result = eval(lexer, *g, &mut g_env)?; + // Apply f dyadically with left and g's result + let mut f_env = env.clone(); + f_env.vars.insert("⍺".to_string(), lhs_val); + f_env.vars.insert("⍵".to_string(), g_result); + eval(lexer, *f, &mut f_env) + } Expr::SelfCall { span, arg } => { debug!("Self-reference ∇"); let arg_val = eval(lexer, *arg, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index c9c09ce..4508289 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -442,6 +442,9 @@ fn reference_tests() { ("{⍵+1}⍣3 ⍳ 5", &[4.0, 5.0, 6.0, 7.0, 8.0], "power: increment 3 times"), ("{⍵×2}⍣4 (1)", &[16.0], "power: double 4 times"), ("{⍵+1}⍣0 (5)", &[5.0], "power 0 is identity"), + // Compose ∘ + ("{⍵+1}∘{⍵×2} 3", &[7.0], "compose: (3×2)+1 = 7"), + ("{⍵×⍵}∘{⍵+1} 4", &[25.0], "compose: (4+1)² = 25"), ]; let mut failures = Vec::new(); From 30d257ab302b416fd6bea5316c792feb024248b5 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:05:21 +0100 Subject: [PATCH 10/25] Add function trains (fork and atop) --- apiel/src/parse/mod.rs | 246 +++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 22 ++++ 2 files changed, 268 insertions(+) diff --git a/apiel/src/parse/mod.rs b/apiel/src/parse/mod.rs index 15c1ca9..8c676a3 100644 --- a/apiel/src/parse/mod.rs +++ b/apiel/src/parse/mod.rs @@ -20,7 +20,253 @@ pub fn parse_and_evaluate_with_env(line: &str, env: &mut Env) -> Result eval_to_val(line, env).map(|val| val.data.into_iter().map(f64::from).collect()) } +// --- Token-level train rewriting --- + +/// A token with its byte span and text, extracted from the lexer. +struct Tok<'a> { + start: usize, + end: usize, + text: &'a str, +} + +/// Is this token text a primitive dyadic operator (usable in trains)? +fn is_operator_tok(t: &str) -> bool { + matches!( + t, + "+" | "-" | "×" | "÷" | "*" | "⍟" | "○" | "!" | "?" | "|" | "⌈" | "⌊" + | "=" | "≠" | "<" | ">" | "≤" | "≥" | "∧" | "∨" | "⍲" | "⍱" | "," + ) +} + +/// Is this token text a monadic-only function (usable in trains)? +fn is_monadic_fn_tok(t: &str) -> bool { + matches!( + t, + "⍴" | "⌽" | "⍳" | "⍋" | "⍒" | "≢" | "≡" | "∪" | "⊃" | "⊂" | "⍉" | "~" | "⊣" + | "⊢" | "⌹" | "⍸" | "⍷" | "↑" | "↓" + ) +} + +/// Is this token text a pre-composed reduction (single lexer token)? +fn is_builtin_reduce_tok(t: &str) -> bool { + matches!(t, "⌈/" | "⌊/") +} + +/// Is this token text a NAME (identifier)? +fn is_name_tok(t: &str) -> bool { + let mut chars = t.chars(); + match chars.next() { + Some(c) if c.is_ascii_alphabetic() || c == '_' => { + chars.all(|c| c.is_ascii_alphanumeric() || c == '_') + } + _ => false, + } +} + +/// Is this token text a value (NOT function-like)? +fn is_value_tok(t: &str) -> bool { + // INT, FLOAT, VEC, STRING, OMEGA, ALPHA, braces, brackets, assignment, etc. + if t == "⍵" || t == "⍺" || t == "←" || t == "⋄" || t == ":" { + return true; + } + if t.starts_with('\'') { + return true; // STRING + } + if t == "{" || t == "}" || t == "[" || t == "]" { + return true; + } + // Numeric: starts with digit or ¯ followed by digit + let first = t.chars().next().unwrap_or(' '); + if first.is_ascii_digit() { + return true; + } + if first == '¯' && t.len() > 1 { + return true; + } + false +} + +/// A function reference parsed from the token stream. +enum TrainFn { + /// A primitive operator or monadic function: "+", "≢", "⍴", etc. + Simple(String), + /// A derived function (reduce/scan): "+/", "×\", "⌈/", etc. + Derived(String), + /// A named user-defined function + Named(String), +} + +impl TrainFn { + /// Build monadic application string: `f⍵` + fn apply_monadic(&self) -> String { + match self { + TrainFn::Simple(f) | TrainFn::Derived(f) => format!("{f}⍵"), + TrainFn::Named(f) => format!("{f} ⍵"), + } + } + + /// Return the text of this function reference (for dyadic use between results). + fn text(&self) -> &str { + match self { + TrainFn::Simple(f) | TrainFn::Derived(f) | TrainFn::Named(f) => f, + } + } +} + +/// Try to parse a sequence of tokens (between parens) as train function references. +/// Returns None if any token is value-like or the count isn't 2 or 3. +fn try_parse_train(tokens: &[Tok]) -> Option> { + if tokens.is_empty() { + return None; + } + + // Reject if any value-like token is present + if tokens.iter().any(|t| is_value_tok(t.text)) { + return None; + } + + // Reject if nested parens/braces are present + if tokens.iter().any(|t| matches!(t.text, "(" | ")" | "{" | "}")) { + return None; + } + + let mut fns: Vec = Vec::new(); + let mut i = 0; + + while i < tokens.len() { + let t = tokens[i].text; + + // Built-in reductions that are single tokens (⌈/ ⌊/) + if is_builtin_reduce_tok(t) { + fns.push(TrainFn::Derived(t.to_string())); + i += 1; + continue; + } + + // Operator possibly followed by / or \ (reduce/scan) + if is_operator_tok(t) { + if i + 1 < tokens.len() && (tokens[i + 1].text == "/" || tokens[i + 1].text == "\\") { + fns.push(TrainFn::Derived(format!("{}{}", t, tokens[i + 1].text))); + i += 2; + continue; + } + fns.push(TrainFn::Simple(t.to_string())); + i += 1; + continue; + } + + // Monadic-only function + if is_monadic_fn_tok(t) { + fns.push(TrainFn::Simple(t.to_string())); + i += 1; + continue; + } + + // NAME (user-defined function) + if is_name_tok(t) { + fns.push(TrainFn::Named(t.to_string())); + i += 1; + continue; + } + + // Unrecognized token -> not a train + return None; + } + + if fns.len() == 2 || fns.len() == 3 { + Some(fns) + } else { + None + } +} + +/// Build a dfn string from train function references. +fn build_train_dfn(fns: &[TrainFn]) -> String { + if fns.len() == 3 { + // Fork: (f g h) -> {(f⍵)g(h⍵)} + let f_app = fns[0].apply_monadic(); + let g = fns[1].text(); + let h_app = fns[2].apply_monadic(); + format!("{{({f_app}){g}({h_app})}}") + } else { + // Atop: (f g) -> {f(g⍵)} + let f = fns[0].text(); + let g_app = fns[1].apply_monadic(); + format!("{{{f}({g_app})}}") + } +} + +/// Rewrite train patterns using token-level analysis. +/// +/// Tokenizes the input with the lexer, identifies parenthesized groups containing +/// only function-like tokens (operators, monadic functions, derived functions, names), +/// and rewrites them as dfn expressions. +fn rewrite_trains(input: &str) -> String { + let lexerdef = apiel_l::lexerdef(); + let lexer = lexerdef.lexer(input); + + // Collect tokens with byte spans + let tokens: Vec = lexer + .iter() + .filter_map(|r| r.ok()) + .map(|tok| { + let s = tok.span(); + Tok { + start: s.start(), + end: s.end(), + text: &input[s.start()..s.end()], + } + }) + .collect(); + + // Find parenthesized groups and check for trains + // Collect (paren_open_byte, paren_close_byte_end, replacement_string) + let mut replacements: Vec<(usize, usize, String)> = Vec::new(); + + let mut i = 0; + while i < tokens.len() { + if tokens[i].text == "(" { + // Find matching ) at depth 0 + let mut depth = 1; + let mut j = i + 1; + while j < tokens.len() && depth > 0 { + match tokens[j].text { + "(" => depth += 1, + ")" => depth -= 1, + _ => {} + } + if depth > 0 { + j += 1; + } + } + if depth == 0 && j > i + 1 { + // Inner tokens: i+1 .. j (exclusive of parens) + let inner = &tokens[i + 1..j]; + if let Some(fns) = try_parse_train(inner) { + let replacement = build_train_dfn(&fns); + replacements.push((tokens[i].start, tokens[j].end, replacement)); + i = j + 1; + continue; + } + } + } + i += 1; + } + + if replacements.is_empty() { + return input.to_string(); + } + + // Apply replacements in reverse order so byte offsets stay valid + let mut result = input.to_string(); + for (start, end, replacement) in replacements.into_iter().rev() { + result.replace_range(start..end, &replacement); + } + result +} + pub fn eval_to_val(line: &str, env: &mut Env) -> Result { + let line = &rewrite_trains(line); let lexerdef = apiel_l::lexerdef(); let lexer = lexerdef.lexer(line); diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 4508289..f3451d7 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -445,6 +445,14 @@ fn reference_tests() { // Compose ∘ ("{⍵+1}∘{⍵×2} 3", &[7.0], "compose: (3×2)+1 = 7"), ("{⍵×⍵}∘{⍵+1} 4", &[25.0], "compose: (4+1)² = 25"), + // Function trains — fork (3-train) + ("(+/ ÷ ≢) 2 4 6 8 10", &[6.0], "fork: average"), + ("(⌈/ - ⌊/) 3 1 4 1 5 9", &[8.0], "fork: range = max-min"), + ("(+/ ÷ ≢) 10 20 30", &[20.0], "fork: average of 3"), + // Function trains — atop (2-train) + ("(- ×) 3", &[-1.0], "atop: negate(signum(3))"), + ("(- ×) ¯5", &[1.0], "atop: negate(signum(-5))"), + ("(⌊ ÷) 7", &[0.0], "atop: floor(reciprocal(7))"), ]; let mut failures = Vec::new(); @@ -519,6 +527,20 @@ fn variables_and_assignment() { &[5.0, 7.0, 9.0], "call named dyadic vector", ); + + // Named functions in trains + assert_apl_env( + "(double + ×) 3", + &mut env, + &[7.0], + "train with named fn: (double 3)+(× 3) = 6+1 = 7", + ); + assert_apl_env( + "(double - double) 5", + &mut env, + &[0.0], + "train with two named fns: (double 5)-(double 5) = 0", + ); } #[test] From b04af8cbf5350a5a145228b567dce3ee2e067ac4 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:08:47 +0100 Subject: [PATCH 11/25] =?UTF-8?q?Add=20rank=20operator=20=E2=8D=A4=20(appl?= =?UTF-8?q?y=20function=20to=20sub-cells)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 9 ++++++++ apiel/src/parse/eval.rs | 47 ++++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 +++ 4 files changed, 60 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index c175ce9..74a7a76 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -50,6 +50,7 @@ \⊆ "PARTITION" \¨ "EACH" \⍣ "POWOP" +\⍤ "RANK" \⍨ "COMMUTE" \∪ "UNIQUE" \∩ "INTERSECT" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 1231d1e..f08fdb2 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -128,6 +128,9 @@ Term -> Result: | '{' DfnBody '}' 'POWOP' Factor Term { Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) } + | '{' DfnBody '}' 'RANK' Factor Term { + Ok(Expr::RankOp{ span: $span, body: Box::new($2?), rank: Box::new($5?), arg: Box::new($6?) }) + } | 'NAME' Factor { Ok(Expr::NamedMonadic{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), rhs: Box::new($2?) }) } @@ -604,6 +607,12 @@ pub enum Expr { count: Box, arg: Box, }, + RankOp { + span: Span, + body: Box, + rank: Box, + arg: Box, + }, DyadicDfn { span: Span, lhs: Box, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index eb706e4..8311c2a 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1088,6 +1088,53 @@ pub fn eval( dfn_env.fns.insert("∇".to_string(), stored); eval(lexer, (*body_rc).clone(), &mut dfn_env) } + Expr::RankOp { span, body, rank, arg } => { + debug!("Rank Operator"); + let rank_val = eval(lexer, *rank, env)?; + let k: usize = rank_val.data[0].clone().try_into() + .map_err(|_| (span, "Rank must be a non-negative integer"))?; + let arg_val = eval(lexer, *arg, env)?; + let n = arg_val.shape.len(); + let body_rc = Rc::new(*body); + if k >= n { + // Apply to entire array + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍵".to_string(), arg_val); + dfn_env.fns.insert("∇".to_string(), stored); + return eval(lexer, (*body_rc).clone(), &mut dfn_env); + } + let frame_shape = arg_val.shape[..n - k].to_vec(); + let cell_shape = arg_val.shape[n - k..].to_vec(); + let cell_size: usize = cell_shape.iter().product(); + let num_cells: usize = frame_shape.iter().product(); + let mut results = Vec::new(); + let mut result_cell_shape: Option> = None; + for i in 0..num_cells { + let start = i * cell_size; + let cell_data = arg_val.data[start..start + cell_size].to_vec(); + let cell = Val::new(cell_shape.clone(), cell_data); + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍵".to_string(), cell); + dfn_env.fns.insert("∇".to_string(), stored); + let result = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + if result_cell_shape.is_none() { + result_cell_shape = Some(result.shape.clone()); + } + results.extend(result.data); + } + let rcs = result_cell_shape.unwrap_or_default(); + let mut final_shape = frame_shape; + final_shape.extend_from_slice(&rcs); + Ok(Val::new(final_shape, results)) + } Expr::PowerOp { span, body, count, arg } => { debug!("Power Operator (dfn)"); let count_val = eval(lexer, *count, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index f3451d7..ebd7aa0 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -453,6 +453,9 @@ fn reference_tests() { ("(- ×) 3", &[-1.0], "atop: negate(signum(3))"), ("(- ×) ¯5", &[1.0], "atop: negate(signum(-5))"), ("(⌊ ÷) 7", &[0.0], "atop: floor(reciprocal(7))"), + // Rank operator ⍤ + ("{+/⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[6.0, 15.0], "rank 1: sum each row"), + ("{⌽⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[3.0, 2.0, 1.0, 6.0, 5.0, 4.0], "rank 1: reverse each row"), ]; let mut failures = Vec::new(); From 63c0bfe6b114d02eb1a7938d57924eaf6440fc02 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:11:45 +0100 Subject: [PATCH 12/25] =?UTF-8?q?Add=20over=20operator=20=E2=8D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 19 +++++++++++++++++++ apiel/src/parse/eval.rs | 30 ++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 +++ 4 files changed, 53 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 74a7a76..100837a 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -41,6 +41,7 @@ \⍒ "GRADEDN" ∘\. "OUTERPRODUCT" \∘ "COMPOSE" +\⍥ "OVER" \← "ASSIGN" \⍵ "OMEGA" \⍺ "ALPHA" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index f08fdb2..d2d2e80 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -125,6 +125,12 @@ Term -> Result: | Factor '{' DfnBody '}' 'COMPOSE' '{' DfnBody '}' Term { Ok(Expr::ComposeDyadicDfn{ span: $span, lhs: Box::new($1?), f: Box::new($3?), g: Box::new($7?), arg: Box::new($9?) }) } + | '{' DfnBody '}' 'OVER' '{' DfnBody '}' Term { + Ok(Expr::OverDfn{ span: $span, f: Box::new($2?), g: Box::new($6?), arg: Box::new($8?) }) + } + | Factor '{' DfnBody '}' 'OVER' '{' DfnBody '}' Term { + Ok(Expr::OverDyadicDfn{ span: $span, lhs: Box::new($1?), f: Box::new($3?), g: Box::new($7?), arg: Box::new($9?) }) + } | '{' DfnBody '}' 'POWOP' Factor Term { Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) } @@ -806,6 +812,19 @@ pub enum Expr { g: Box, arg: Box, }, + OverDfn { + span: Span, + f: Box, + g: Box, + arg: Box, + }, + OverDyadicDfn { + span: Span, + lhs: Box, + f: Box, + g: Box, + arg: Box, + }, // Monadic diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 8311c2a..e92c4dc 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1200,6 +1200,36 @@ pub fn eval( f_env.vars.insert("⍵".to_string(), g_result); eval(lexer, *f, &mut f_env) } + Expr::OverDfn { span: _, f, g, arg } => { + debug!("Over (monadic)"); + let arg_val = eval(lexer, *arg, env)?; + // Apply g monadically to arg + let mut g_env = env.clone(); + g_env.vars.insert("⍵".to_string(), arg_val); + let g_result = eval(lexer, *g, &mut g_env)?; + // Apply f monadically to g's result + let mut f_env = env.clone(); + f_env.vars.insert("⍵".to_string(), g_result); + eval(lexer, *f, &mut f_env) + } + Expr::OverDyadicDfn { span: _, lhs, f, g, arg } => { + debug!("Over (dyadic)"); + let lhs_val = eval(lexer, *lhs, env)?; + let arg_val = eval(lexer, *arg, env)?; + // Apply g to BOTH arguments + let g_clone = (*g).clone(); + let mut g_env_l = env.clone(); + g_env_l.vars.insert("⍵".to_string(), lhs_val); + let g_lhs = eval(lexer, *g, &mut g_env_l)?; + let mut g_env_r = env.clone(); + g_env_r.vars.insert("⍵".to_string(), arg_val); + let g_rhs = eval(lexer, g_clone, &mut g_env_r)?; + // Apply f dyadically to the two results + let mut f_env = env.clone(); + f_env.vars.insert("⍺".to_string(), g_lhs); + f_env.vars.insert("⍵".to_string(), g_rhs); + eval(lexer, *f, &mut f_env) + } Expr::SelfCall { span, arg } => { debug!("Self-reference ∇"); let arg_val = eval(lexer, *arg, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index ebd7aa0..5ddbdde 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -456,6 +456,9 @@ fn reference_tests() { // Rank operator ⍤ ("{+/⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[6.0, 15.0], "rank 1: sum each row"), ("{⌽⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[3.0, 2.0, 1.0, 6.0, 5.0, 4.0], "rank 1: reverse each row"), + // Over ⍥ + ("{⍵×2}⍥{⍵+1} 5", &[12.0], "over monadic: (5+1)×2 = 12"), + ("3 {⍺+⍵}⍥{⍵×⍵} 4", &[25.0], "over dyadic: 3²+4² = 25"), ]; let mut failures = Vec::new(); From 42e0fcf6058ef82575e8f7b36b883423a52ef47c Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:13:50 +0100 Subject: [PATCH 13/25] Add at operator @ (selective application) --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 9 +++++++++ apiel/src/parse/eval.rs | 33 +++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 +++ 4 files changed, 46 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 100837a..aa7d6be 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -61,6 +61,7 @@ \. "DOT" \⌷ "INDEX" \⌹ "MATINV" +@ "AT" '[^']*' "STRING" \⊣ "LEFT" \⊢ "RIGHT" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index d2d2e80..0bc2d37 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -131,6 +131,9 @@ Term -> Result: | Factor '{' DfnBody '}' 'OVER' '{' DfnBody '}' Term { Ok(Expr::OverDyadicDfn{ span: $span, lhs: Box::new($1?), f: Box::new($3?), g: Box::new($7?), arg: Box::new($9?) }) } + | '{' DfnBody '}' 'AT' Factor Term { + Ok(Expr::AtOp{ span: $span, body: Box::new($2?), indices: Box::new($5?), arg: Box::new($6?) }) + } | '{' DfnBody '}' 'POWOP' Factor Term { Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) } @@ -607,6 +610,12 @@ pub enum Expr { body: Box, rhs: Box, }, + AtOp { + span: Span, + body: Box, + indices: Box, + arg: Box, + }, PowerOp { span: Span, body: Box, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index e92c4dc..8fdd4b5 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1135,6 +1135,39 @@ pub fn eval( final_shape.extend_from_slice(&rcs); Ok(Val::new(final_shape, results)) } + Expr::AtOp { span, body, indices, arg } => { + debug!("At Operator"); + let idx_val = eval(lexer, *indices, env)?; + let mut arg_val = eval(lexer, *arg, env)?; + let body_rc = Rc::new(*body); + + // Convert 1-based indices to 0-based + let idxs: Vec = idx_val.data.iter() + .map(|s| { + let i: usize = s.clone().try_into().map_err(|_| (span, "At index must be integer"))?; + if i < 1 || i > arg_val.data.len() { + return Err((span, "At index out of bounds")); + } + Ok(i - 1) + }) + .collect::, _>>()?; + + // Apply function to each indexed element + for &idx in &idxs { + let elem = Val::scalar(arg_val.data[idx].clone()); + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍵".to_string(), elem); + dfn_env.fns.insert("∇".to_string(), stored); + let result = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + arg_val.data[idx] = result.data[0].clone(); + } + + Ok(arg_val) + } Expr::PowerOp { span, body, count, arg } => { debug!("Power Operator (dfn)"); let count_val = eval(lexer, *count, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 5ddbdde..7300725 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -459,6 +459,9 @@ fn reference_tests() { // Over ⍥ ("{⍵×2}⍥{⍵+1} 5", &[12.0], "over monadic: (5+1)×2 = 12"), ("3 {⍺+⍵}⍥{⍵×⍵} 4", &[25.0], "over dyadic: 3²+4² = 25"), + // At operator @ + ("{⍵×10}@(2 3) ⊢ ⍳ 5", &[1.0, 20.0, 30.0, 4.0, 5.0], "at: multiply at indices"), + ("{0}@(1 3 5) ⊢ ⍳ 5", &[0.0, 2.0, 0.0, 4.0, 0.0], "at: replace at indices"), ]; let mut failures = Vec::new(); From 4e93f3e72ce61cf54cd5cfccab9b3008c6862ef3 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:15:50 +0100 Subject: [PATCH 14/25] =?UTF-8?q?Add=20key=20operator=20=E2=8C=B8=20(group?= =?UTF-8?q?-by)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 8 ++++++++ apiel/src/parse/eval.rs | 35 +++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 +++ 4 files changed, 47 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index aa7d6be..026be79 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -50,6 +50,7 @@ \⊃ "FIRST" \⊆ "PARTITION" \¨ "EACH" +\⌸ "KEY" \⍣ "POWOP" \⍤ "RANK" \⍨ "COMMUTE" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 0bc2d37..fcc7e0c 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -137,6 +137,9 @@ Term -> Result: | '{' DfnBody '}' 'POWOP' Factor Term { Ok(Expr::PowerOp{ span: $span, body: Box::new($2?), count: Box::new($5?), arg: Box::new($6?) }) } + | '{' DfnBody '}' 'KEY' Term { + Ok(Expr::KeyOp{ span: $span, body: Box::new($2?), arg: Box::new($5?) }) + } | '{' DfnBody '}' 'RANK' Factor Term { Ok(Expr::RankOp{ span: $span, body: Box::new($2?), rank: Box::new($5?), arg: Box::new($6?) }) } @@ -628,6 +631,11 @@ pub enum Expr { rank: Box, arg: Box, }, + KeyOp { + span: Span, + body: Box, + arg: Box, + }, DyadicDfn { span: Span, lhs: Box, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 8fdd4b5..cdbd8ae 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1168,6 +1168,41 @@ pub fn eval( Ok(arg_val) } + Expr::KeyOp { span, body, arg } => { + debug!("Key Operator"); + let arg_val = eval(lexer, *arg, env)?; + let body_rc = Rc::new(*body); + + // Find unique keys and their indices (1-based) + let mut keys: Vec = Vec::new(); + let mut groups: Vec> = Vec::new(); + + for (i, s) in arg_val.data.iter().enumerate() { + if let Some(pos) = keys.iter().position(|k| k == s) { + groups[pos].push(Scalar::Integer((i + 1) as i64)); + } else { + keys.push(s.clone()); + groups.push(vec![Scalar::Integer((i + 1) as i64)]); + } + } + + // Apply f to each group + let mut results = Vec::new(); + for (key, indices) in keys.iter().zip(groups.iter()) { + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍺".to_string(), Val::scalar(key.clone())); + dfn_env.vars.insert("⍵".to_string(), Val::vector(indices.clone())); + dfn_env.fns.insert("∇".to_string(), stored); + let result = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + results.extend(result.data); + } + + Ok(Val::vector(results)) + } Expr::PowerOp { span, body, count, arg } => { debug!("Power Operator (dfn)"); let count_val = eval(lexer, *count, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 7300725..58c289e 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -462,6 +462,9 @@ fn reference_tests() { // At operator @ ("{⍵×10}@(2 3) ⊢ ⍳ 5", &[1.0, 20.0, 30.0, 4.0, 5.0], "at: multiply at indices"), ("{0}@(1 3 5) ⊢ ⍳ 5", &[0.0, 2.0, 0.0, 4.0, 0.0], "at: replace at indices"), + // Key operator ⌸ + ("{≢⍵}⌸ 1 1 2 3 3 3", &[2.0, 1.0, 3.0], "key: count each group"), + ("{⍺}⌸ 1 1 2 3 3 3", &[1.0, 2.0, 3.0], "key: unique keys"), ]; let mut failures = Vec::new(); From 433f90974c0142eb26ee3b24250ed41ac26b1816 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:19:11 +0100 Subject: [PATCH 15/25] =?UTF-8?q?Add=20mix=20=E2=86=91=20and=20split=20?= =?UTF-8?q?=E2=86=93=20(monadic=20forms)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.y | 14 ++++++++++++ apiel/src/parse/eval.rs | 49 ++++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 19 ++++++++++++++++ 3 files changed, 82 insertions(+) diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index fcc7e0c..3ee4309 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -310,6 +310,12 @@ MonadicFactor -> Result: | 'NOTMATCH' Term { Ok(Expr::Tally{ span: $span, arg: Box::new($2?) }) } + | 'TAKE' Term { + Ok(Expr::Mix{ span: $span, arg: Box::new($2?) }) + } + | 'DROP' Term { + Ok(Expr::Split{ span: $span, arg: Box::new($2?) }) + } | 'RHO' 'EACH' Term { Ok(Expr::MonadicEach{ span: $span, func: "shape".to_string(), arg: Box::new($3?) }) } @@ -949,6 +955,14 @@ pub enum Expr { span: Span, arg: Box, }, + Mix { + span: Span, + arg: Box, + }, + Split { + span: Span, + arg: Box, + }, Reduce { span: Span, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index cdbd8ae..f275fdd 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1963,6 +1963,55 @@ pub fn eval( op_fn(a, b).ok_or_eyre("Selfie operation failed") }) } + Expr::Split { span: _, arg } => { + debug!("Monadic Split"); + let arg_eval = eval(lexer, *arg, env)?; + if arg_eval.shape.len() <= 1 { + // Vector or scalar: each element becomes a nested scalar + let data = arg_eval + .data + .into_iter() + .map(|s| Scalar::Nested(Box::new(Val::scalar(s)))) + .collect::>(); + Ok(Val::vector(data)) + } else { + let rows = arg_eval.shape[0]; + let cell_shape = arg_eval.shape[1..].to_vec(); + let cell_size: usize = cell_shape.iter().product(); + let data = (0..rows) + .map(|i| { + let start = i * cell_size; + let cell = Val::new( + cell_shape.clone(), + arg_eval.data[start..start + cell_size].to_vec(), + ); + Scalar::Nested(Box::new(cell)) + }) + .collect(); + Ok(Val::vector(data)) + } + } + Expr::Mix { span, arg } => { + debug!("Monadic Mix"); + let arg_eval = eval(lexer, *arg, env)?; + let cells: Vec = arg_eval + .data + .iter() + .filter_map(|s| match s { + Scalar::Nested(v) => Some((**v).clone()), + _ => None, + }) + .collect(); + if cells.is_empty() { + return Ok(arg_eval); + } + let cell_shape = cells[0].shape.clone(); + let mut shape = vec![cells.len()]; + shape.extend_from_slice(&cell_shape); + let data = cells.into_iter().flat_map(|v| v.data).collect(); + let _ = span; + Ok(Val::new(shape, data)) + } Expr::ScalarFloat { span, .. } => { debug!("Scalar Float"); lexer diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 58c289e..601f433 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -697,3 +697,22 @@ fn depth_and_match() { let val = eval_to_val("(2 3 ⍴ ⍳ 6) ≡ 1 2 3 4 5 6", &mut env).unwrap(); assert_eq!(format_val(&val), "0", "match: different shapes"); } + +#[test] +fn mix_and_split() { + let mut env = Env::new(); + + // Split: matrix -> nested vector of rows + let val = eval_to_val("↓ 2 3 ⍴ ⍳ 6", &mut env).unwrap(); + assert_eq!(val.data.len(), 2, "split 2x3 gives 2 elements"); + assert_eq!(format_val(&val), "(1 2 3) (4 5 6)"); + + // Mix: nested vector -> matrix + let val = eval_to_val("↑ (⊂ 1 2 3),(⊂ 4 5 6)", &mut env).unwrap(); + assert_eq!(val.shape, vec![2, 3], "mix produces 2x3 matrix"); + assert_eq!(format_val(&val), "1 2 3 4 5 6"); + + // Split then mix is identity (for regular matrix) + let val = eval_to_val("↑ ↓ 2 3 ⍴ ⍳ 6", &mut env).unwrap(); + assert_eq!(val.shape, vec![2, 3], "split then mix roundtrip"); +} From 3054b915edc28ed91eead5793031593f6d1b0210 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:22:29 +0100 Subject: [PATCH 16/25] =?UTF-8?q?Add=20partitioned=20enclose=20(dyadic=20?= =?UTF-8?q?=E2=8A=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.y | 8 ++++++++ apiel/src/parse/eval.rs | 39 +++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 14 ++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 3ee4309..cb93885 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -188,6 +188,9 @@ Term -> Result: | Factor 'FIND' Term { Ok(Expr::Find{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'ENCLOSE' Term { + Ok(Expr::PartitionedEnclose{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor Operator 'DOT' Operator Term { match ($2, $4) { (Ok(f), Ok(g)) => Ok(Expr::InnerProduct{ span: $span, lhs: Box::new($1?), f, g, rhs: Box::new($5?) }), @@ -734,6 +737,11 @@ pub enum Expr { lhs: Box, rhs: Box, }, + PartitionedEnclose { + span: Span, + lhs: Box, + rhs: Box, + }, MonadicEach { span: Span, func: String, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index f275fdd..edb46bf 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1432,6 +1432,45 @@ pub fn eval( } Ok(Val::vector(groups)) } + Expr::PartitionedEnclose { span, lhs, rhs } => { + debug!("Partitioned Enclose"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + + if lhs_eval.data.len() != rhs_eval.data.len() { + return Err((span, "Partitioned enclose: left and right must be same length")); + } + + let mut partitions: Vec> = Vec::new(); + let mut current: Option> = None; + + for (mask, elem) in lhs_eval.data.iter().zip(rhs_eval.data.iter()) { + let m: f64 = mask.clone().into(); + if m >= 1.0 { + // Start new partition (save current if exists) + if let Some(part) = current.take() { + partitions.push(part); + } + current = Some(vec![elem.clone()]); + } else if m == 0.0 && current.is_some() { + // Continue current partition + current.as_mut().unwrap().push(elem.clone()); + } + // If m == 0 and no current partition, element is dropped + } + + // Don't forget the last partition + if let Some(part) = current { + partitions.push(part); + } + + let data: Vec = partitions + .into_iter() + .map(|p| Scalar::Nested(Box::new(Val::vector(p)))) + .collect(); + + Ok(Val::vector(data)) + } Expr::MonadicEach { span, func, arg } => { debug!("Monadic Each: {func}"); let arg_eval = eval(lexer, *arg, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 601f433..39ee8a4 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -716,3 +716,17 @@ fn mix_and_split() { let val = eval_to_val("↑ ↓ 2 3 ⍴ ⍳ 6", &mut env).unwrap(); assert_eq!(val.shape, vec![2, 3], "split then mix roundtrip"); } + +#[test] +fn partitioned_enclose() { + let mut env = Env::new(); + + let val = eval_to_val("1 0 1 0 0 ⊂ 1 2 3 4 5", &mut env).unwrap(); + assert_eq!(format_val(&val), "(1 2) (3 4 5)", "partition: two groups"); + + let val = eval_to_val("1 1 1 ⊂ 10 20 30", &mut env).unwrap(); + assert_eq!(format_val(&val), "(10) (20) (30)", "partition: each element"); + + let val = eval_to_val("1 0 0 0 0 ⊂ 1 2 3 4 5", &mut env).unwrap(); + assert_eq!(format_val(&val), "(1 2 3 4 5)", "partition: single group"); +} From 5400f381b1f1652f7a081f9ef18863ecb5e9eb05 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:25:23 +0100 Subject: [PATCH 17/25] =?UTF-8?q?Add=20dyadic=20transpose=20=E2=8D=89=20(a?= =?UTF-8?q?xis=20reorder)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.y | 8 +++++ apiel/src/parse/eval.rs | 68 ++++++++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 3 ++ 3 files changed, 79 insertions(+) diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index cb93885..c5be479 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -191,6 +191,9 @@ Term -> Result: | Factor 'ENCLOSE' Term { Ok(Expr::PartitionedEnclose{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'TRANSPOSE' Term { + Ok(Expr::DyadicTranspose{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor Operator 'DOT' Operator Term { match ($2, $4) { (Ok(f), Ok(g)) => Ok(Expr::InnerProduct{ span: $span, lhs: Box::new($1?), f, g, rhs: Box::new($5?) }), @@ -875,6 +878,11 @@ pub enum Expr { span: Span, arg: Box, }, + DyadicTranspose { + span: Span, + lhs: Box, + rhs: Box, + }, GradeUp { span: Span, arg: Box, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index edb46bf..2688f87 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -980,6 +980,74 @@ pub fn eval( _ => Err((Span::new(0, 0), "Transpose only supports rank 0, 1, or 2")), } } + Expr::DyadicTranspose { span, lhs, rhs } => { + debug!("Dyadic Transpose"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + + // Parse permutation vector (1-based to 0-based) + let perm: Vec = lhs_eval.data.iter() + .map(|s| { + let v: usize = s.clone().try_into().map_err(|_| (span, "Transpose perm must be integers"))?; + if v < 1 || v > rhs_eval.shape.len() { + return Err((span, "Transpose permutation out of range")); + } + Ok(v - 1) + }) + .collect::, _>>()?; + + if perm.len() != rhs_eval.shape.len() { + return Err((span, "Transpose permutation length must match array rank")); + } + + let old_shape = &rhs_eval.shape; + let rank = old_shape.len(); + + // New shape: new_shape[perm[i]] = old_shape[i] + let mut new_shape = vec![0usize; rank]; + for i in 0..rank { + new_shape[perm[i]] = old_shape[i]; + } + + let total: usize = new_shape.iter().product(); + let mut new_data = vec![Scalar::Integer(0); total]; + + // Compute strides for old shape + let mut old_strides = vec![1usize; rank]; + for i in (0..rank - 1).rev() { + old_strides[i] = old_strides[i + 1] * old_shape[i + 1]; + } + + // Compute strides for new shape + let mut new_strides = vec![1usize; rank]; + for i in (0..rank - 1).rev() { + new_strides[i] = new_strides[i + 1] * new_shape[i + 1]; + } + + // For each element in old array, compute its new position + for old_flat in 0..total { + // Convert flat index to multi-dimensional old index + let mut old_idx = vec![0usize; rank]; + let mut remaining = old_flat; + for i in 0..rank { + old_idx[i] = remaining / old_strides[i]; + remaining %= old_strides[i]; + } + + // Apply permutation: new_idx[perm[i]] = old_idx[i] + let mut new_idx = vec![0usize; rank]; + for i in 0..rank { + new_idx[perm[i]] = old_idx[i]; + } + + // Convert new multi-dimensional index to flat + let new_flat: usize = new_idx.iter().zip(new_strides.iter()).map(|(&i, &s)| i * s).sum(); + + new_data[new_flat] = rhs_eval.data[old_flat].clone(); + } + + Ok(Val::new(new_shape, new_data)) + } Expr::GradeUp { span, arg } => { debug!("Monadic Grade Up"); let arg_eval = eval(lexer, *arg, env)?; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 39ee8a4..6c37ea0 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -228,6 +228,9 @@ fn reference_tests() { ("⍴ ⍉ 2 3 ⍴ ⍳ 6", &[3.0, 2.0], "shape of transposed"), ("⍉ 1 2 3", &[1.0, 2.0, 3.0], "transpose vector noop"), ("⍉ 5", &[5.0], "transpose scalar noop"), + // Dyadic transpose ⍉ + ("1 2 ⍉ 2 3 ⍴ ⍳ 6", &[1.0, 2.0, 3.0, 4.0, 5.0, 6.0], "dyadic transpose: identity perm"), + ("2 1 ⍉ 2 3 ⍴ ⍳ 6", &[1.0, 4.0, 2.0, 5.0, 3.0, 6.0], "dyadic transpose: swap axes"), // Bool ops (∧ ∨ ⍲ ⍱) ("1 ∧ 1", &[1.0], "and 1 1"), ("1 ∧ 0", &[0.0], "and 1 0"), From 9a8ff4d50286995b557a1076d77017f9666add35 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:49:30 +0100 Subject: [PATCH 18/25] =?UTF-8?q?Add=20modified=20assignment=20(x+?= =?UTF-8?q?=E2=86=901)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 1 + apiel/src/apiel.y | 35 +++++++++++++++++++++++++++++++++++ apiel/src/parse/eval.rs | 12 ++++++++++++ apiel/tests/reference.rs | 10 ++++++++++ 4 files changed, 58 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 026be79..5b50216 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -42,6 +42,7 @@ ∘\. "OUTERPRODUCT" \∘ "COMPOSE" \⍥ "OVER" +[\+\-×÷\*⍟○!\?|⌈⌊∧∨⍲⍱=≠<>≤≥]← "MODASSIGN" \← "ASSIGN" \⍵ "OMEGA" \⍺ "ALPHA" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index c5be479..650dce8 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -101,6 +101,35 @@ Term -> Result: | Factor 'DROP' Term { Ok(Expr::Drop{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | 'NAME' 'MODASSIGN' Term { + let op_str = $2.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(); + let op = match op_str.trim_end_matches('←') { + "+" => Ok(Operator::Add), + "-" => Ok(Operator::Subtract), + "×" => Ok(Operator::Multiply), + "÷" => Ok(Operator::Divide), + "*" => Ok(Operator::Power), + "⍟" => Ok(Operator::Log), + "!" => Ok(Operator::Binomial), + "|" => Ok(Operator::Residue), + "⌈" => Ok(Operator::Max), + "⌊" => Ok(Operator::Min), + "∧" => Ok(Operator::And), + "∨" => Ok(Operator::Or), + "⍲" => Ok(Operator::Nand), + "⍱" => Ok(Operator::Nor), + _ => Err(()), + }; + match op { + Ok(operator) => Ok(Expr::ModifiedAssign{ + span: $span, + name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), + operator, + rhs: Box::new($3?), + }), + Err(_) => Err(()), + } + } | 'NAME' 'ASSIGN' Term { Ok(Expr::Assign{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), rhs: Box::new($3?) }) } @@ -684,6 +713,12 @@ pub enum Expr { name: String, body: Box, }, + ModifiedAssign { + span: Span, + name: String, + operator: Operator, + rhs: Box, + }, NamedMonadic { span: Span, name: String, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 2688f87..e7f0df0 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -694,6 +694,18 @@ pub fn eval( env.vars.insert(name, val.clone()); Ok(val) } + Expr::ModifiedAssign { span, name, operator, rhs } => { + debug!("Modified Assign: {name}"); + let current = env.vars.get(&name).cloned() + .ok_or((span, "Undefined variable for modified assignment"))?; + let rhs_eval = eval(lexer, *rhs, env)?; + let op_fn = get_operator_fn(operator); + let result = apply_dyadic_operation(span, ¤t, &rhs_eval, |a, b| { + op_fn(a, b).ok_or_eyre("Modified assignment operation failed") + })?; + env.vars.insert(name, result.clone()); + Ok(result) + } Expr::OuterProduct { span, lhs, diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 6c37ea0..2a75691 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -733,3 +733,13 @@ fn partitioned_enclose() { let val = eval_to_val("1 0 0 0 0 ⊂ 1 2 3 4 5", &mut env).unwrap(); assert_eq!(format_val(&val), "(1 2 3 4 5)", "partition: single group"); } + +#[test] +fn modified_assignment() { + let mut env = Env::new(); + assert_apl_env("x←5", &mut env, &[5.0], "assign x"); + assert_apl_env("x+←3", &mut env, &[8.0], "modified assign x+←3"); + assert_apl_env("x", &mut env, &[8.0], "x is now 8"); + assert_apl_env("x×←2", &mut env, &[16.0], "modified assign x×←2"); + assert_apl_env("x", &mut env, &[16.0], "x is now 16"); +} From d5a09de88ee3984d9c86a3a0bb9da6d364affc5b Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 11:53:36 +0100 Subject: [PATCH 19/25] =?UTF-8?q?Add=20indexed=20assignment=20(x[i]?= =?UTF-8?q?=E2=86=90v)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiel/src/apiel.l | 2 ++ apiel/src/apiel.y | 9 +++++++++ apiel/src/parse/eval.rs | 35 +++++++++++++++++++++++++++++++++++ apiel/tests/reference.rs | 9 +++++++++ 4 files changed, 55 insertions(+) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 5b50216..8f98eef 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -76,6 +76,8 @@ \) ")" \{ "{" \} "}" +\[ "[" +\] "]" [a-zA-Z_][a-zA-Z0-9_]* "NAME" [\t ]+ ; . "UNMATCHED" \ No newline at end of file diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index 650dce8..e8d244a 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -130,6 +130,9 @@ Term -> Result: Err(_) => Err(()), } } + | 'NAME' '[' Expr ']' 'ASSIGN' Term { + Ok(Expr::IndexedAssign{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), indices: Box::new($3?), rhs: Box::new($6?) }) + } | 'NAME' 'ASSIGN' Term { Ok(Expr::Assign{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), rhs: Box::new($3?) }) } @@ -719,6 +722,12 @@ pub enum Expr { operator: Operator, rhs: Box, }, + IndexedAssign { + span: Span, + name: String, + indices: Box, + rhs: Box, + }, NamedMonadic { span: Span, name: String, diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index e7f0df0..542aa49 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -706,6 +706,41 @@ pub fn eval( env.vars.insert(name, result.clone()); Ok(result) } + Expr::IndexedAssign { span, name, indices, rhs } => { + debug!("Indexed Assign: {name}"); + let mut current = env.vars.get(&name).cloned() + .ok_or((span, "Undefined variable for indexed assignment"))?; + let idx_val = eval(lexer, *indices, env)?; + let rhs_val = eval(lexer, *rhs, env)?; + + let idxs: Vec = idx_val.data.iter() + .map(|s| { + let i: usize = s.clone().try_into().map_err(|_| (span, "Index must be integer"))?; + if i < 1 || i > current.data.len() { + return Err((span, "Index out of bounds")); + } + Ok(i - 1) // 1-based to 0-based + }) + .collect::, _>>()?; + + if rhs_val.is_scalar() { + // Scalar: set all indexed positions to same value + for &idx in &idxs { + current.data[idx] = rhs_val.data[0].clone(); + } + } else { + // Vector: must match length + if rhs_val.data.len() != idxs.len() { + return Err((span, "Indexed assign: value length must match index count")); + } + for (i, &idx) in idxs.iter().enumerate() { + current.data[idx] = rhs_val.data[i].clone(); + } + } + + env.vars.insert(name, current.clone()); + Ok(current) + } Expr::OuterProduct { span, lhs, diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 2a75691..6fbb6c0 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -743,3 +743,12 @@ fn modified_assignment() { assert_apl_env("x×←2", &mut env, &[16.0], "modified assign x×←2"); assert_apl_env("x", &mut env, &[16.0], "x is now 16"); } + +#[test] +fn indexed_assignment() { + let mut env = Env::new(); + assert_apl_env("x←1 2 3 4 5", &mut env, &[1.0, 2.0, 3.0, 4.0, 5.0], "assign vector"); + assert_apl_env("x[3]←99", &mut env, &[1.0, 2.0, 99.0, 4.0, 5.0], "index assign single"); + assert_apl_env("x", &mut env, &[1.0, 2.0, 99.0, 4.0, 5.0], "x modified"); + assert_apl_env("x[1 5]←0", &mut env, &[0.0, 2.0, 99.0, 4.0, 0.0], "index assign multiple"); +} From 6c9a4fd65dc1f734084e53d63949270d74a5a0f8 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 14:58:15 +0100 Subject: [PATCH 20/25] Update READMEs --- README.md | 307 +++++++++++++++++++++++++++++------------------- apiel/README.md | 9 +- 2 files changed, 193 insertions(+), 123 deletions(-) diff --git a/README.md b/README.md index d912522..f4f9e4f 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,188 @@ -# apiel -Apiel is a small subset of the [APL programming language](https://en.wikipedia.org/wiki/APL_(programming_language)) implemented in Rust. - -The ultimate goal of the project is to export a macro that allows evaluating APL expressions from Rust code, providing a way to solve some problems in a very conscise manner. - -## Array languages - -APL was the first language in an "Array programming" or "Iversonian" paradigm. These languages are closer to mathematical notation than to C-like programming languages. The concepts proposed by APL inspired many similar languages, influenced the development of the functional programming paradigm, and had a giant impact on programming as a whole. - -## Approach - -The project utilizes [Yacc](https://en.wikipedia.org/wiki/Yacc) **(Yet-Another-Compiler-Compiler)** implementation in Rust through [grmtools](https://github.com/softdevteam/grmtools) to build the lexer and parser. - -`apiel.l` contains the tokens for the **lexer**, `apiel.y` describes the **Yacc grammar**. The build.rs generaters Rust code for the lexer and parser generator. - -My main entry point is apiel/src/parse/mod.rs. There is `fn parse_and_evaluate()` that runs `parse::eval()` (located in /parse/eval.rs) on the expression passed to it. The `parse::eval()` contains a single match expression that performs operations on the data contained in the `Expr` enumeration according to the expression type (it always calls parse::eval() recursively for `lhs` and `rhs` of the expression). The `Expr` enumeration is defined in `aliel.y`. Ech variant of the Expr usually contains a `Span` identifying where it's located in the original input, and boxed arguments, which allows for unlimited recursion inside the expression. - -## Usage - -```cargo run``` or ```RUST_LOG=debug cargo run``` for debugging output. - -Enter commands in the terminal. - -List of supported glyphs and operations: - -| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. -| --- | ---------------- | ----------- | ----------- | ----------- | -| + | Conjugate | ✅* | Addition | ✅ -| - | Negate | ✅ | Subtraction | ✅ -| × | Direction | ✅ | Multiplication | ✅ -| ÷ | Reciprocal | ✅ | Division | ✅ -| * | Exponentiation | ✅ | Raising to power | ✅ -| ⍟ | Natural logarithm | ✅ | Logarithm | ✅ -| ⌹ | Matrix inverse | ✅ | Matrix divide | ✅ -| ○ | Pi Multiple | ✅ | Circular functions | ✅ -| ! | Factorial | ✅ | Binomial | ✅ -| ? | Roll | ✅ | Deal | ✅ -| \| | Magnitude | ✅ | Residue | ✅ -| ⌈ | Ceil | ✅ | Maximum | ✅ -| ⌊ | Floor | ✅ | Minimum | ✅ -| ⍳ | Generate index | ✅ | Index of | ✅ -| ⍸ | Where | ✅ | Interval index | ✅ -| / | - | - | Replicate | ✅ -| / | - | - | Reduce | ✅ -| \ | - | - | Expand | ✅ -| \ | - | - | Scan | ✅ -| , | Ravel | ✅ | Catenate | ✅ -| ⍴ | Shape | ✅ | Reshape | ✅ -| ⌽ | Reverse | ✅ | Rotate | ✅ -| ⍉ | Transpose | ✅ | - | - -| = | - | - | Equality | ✅ -| ≠ | - | - | Not Equal | ✅ -| < | - | - | Less Than | ✅ -| > | - | - | Greater Than | ✅ -| ≤ | - | - | Less or Equal | ✅ -| ≥ | - | - | Greater or Equal | ✅ -| ∧ | - | - | And | ✅ -| ∨ | - | - | Or | ✅ -| ⍲ | - | - | Nand | ✅ -| ⍱ | - | - | Nor | ✅ -| ↑ | - | - | Take | ✅ -| ↓ | - | - | Drop | ✅ -| ⍋ | Grade Up | ✅ | - | - -| ⍒ | Grade Down | ✅ | - | - -| ¯ | High minus (negative literal) | ✅ | - | - -| ∘. | - | - | Outer Product | ✅ -| f.g | - | - | Inner Product | ✅ -| ← | - | - | Assignment | ✅ -| {⍵} | - | - | Dfns (lambdas) | ✅ -| ⍵ ⍺ | Right/Left arg | ✅ | - | - -| ∇ | Self-reference | ✅ | - | - -| ⋄ : | Guards / Statements | ✅ | - | - -| ⊃ | First | ✅ | - | - -| ∪ | Unique | ✅ | Union | ✅ -| ∩ | - | - | Intersection | ✅ -| ~ | Not | ✅ | Without | ✅ -| ⊥ | - | - | Decode | ✅ -| ⊤ | - | - | Encode | ✅ -| ⌷ | - | - | Index | ✅ -| ⊂ | Enclose | ✅ | - | - -| ⊃ | First / Disclose | ✅ | - | - -| ⊆ | - | - | Partition | ✅ -| ¨ | Each (monadic) | ✅ | Each (dyadic) | ✅ -| '' | String literals | ✅ | - | - - -- \* - Not implemented for complex numbers - -## Usage examples - -``` ->>> 5 25 125 ÷ 5 -1 5 25 ->>> 1 2 3 + 4 5 6 -5 7 9 ->>> - 1 2 3 -¯1 ¯2 ¯3 ->>> 1 2 3 * 2 4 6 -1 16 729 ->>> 10 ⍟ 100 -2 ->>> ⍳ 5 -1 2 3 4 5 ->>> +/ ⍳ 10 -55 ->>> 2 3 ⍴ ⍳ 6 -1 2 3 4 5 6 ->>> ⍴ 2 3 ⍴ ⍳ 6 -2 3 ->>> ⌽ 1 2 3 4 5 -5 4 3 2 1 ->>> 1 2 3 = 1 3 3 -1 0 1 ->>> 5 ⍴ 1 2 -1 2 1 2 1 -``` - -## Affiliation - -This was implemented as my capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp), a Rust bootcamp organized by the Ukrainian Rust Community ([website](https://www.uarust.com), [linked in](https://www.linkedin.com/company/ukrainian-rust-community), [telegram](https://t.me/rustlang_ua), [github](https://github.com/rust-lang-ua), [youtube](https://www.youtube.com/channel/UCmkAFUu2MVOX8ly0LjB6TMA), [twitter](https://twitter.com/rustukraine)). +# apiel + +Apiel is a subset of the [APL programming language](https://en.wikipedia.org/wiki/APL_(programming_language)) implemented in Rust. + +The project exports a macro (`apl!`) for evaluating APL expressions from Rust code, and a CLI (`apiel-cli`) for interactive use. + +## Array Languages + +APL was the first language in an "Array programming" or "Iversonian" paradigm. These languages are closer to mathematical notation than to C-like programming languages. The concepts proposed by APL inspired many similar languages, influenced the development of the functional programming paradigm, and had a giant impact on programming as a whole. + +## Approach + +The project utilizes [Yacc](https://en.wikipedia.org/wiki/Yacc) **(Yet-Another-Compiler-Compiler)** implementation in Rust through [grmtools](https://github.com/softdevteam/grmtools) to build the lexer and parser. + +`apiel.l` contains the tokens for the **lexer**, `apiel.y` describes the **Yacc grammar**. The `build.rs` generates Rust code for the lexer and parser. The evaluator in `parse/eval.rs` is a recursive match over the `Expr` AST. + +Function trains are handled via token-level preprocessing: parenthesized groups of function references are detected by the lexer and rewritten to dfn expressions before parsing. + +## Usage + +### CLI + +``` +cargo run -p apiel-cli +``` + +or `RUST_LOG=debug cargo run -p apiel-cli` for debugging output. + +### Library + +```rust +use apiel::apl; + +let result = apl!("+/ ⍳ 10").unwrap(); // [55.0] + +// Pass data from Rust +let result = apl!("⍺ × ⍵", alpha: &[10.0], omega: &[1.0, 2.0, 3.0]).unwrap(); + +// Persistent environment +let mut env = apiel::Env::new(); +apl!("data←⍳ 10", &mut env).unwrap(); +apl!("+/ data", &mut env).unwrap(); // [55.0] +``` + +## Supported Glyphs and Operations + +### Scalar Functions + +| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. | +| --- | --- | --- | --- | --- | +| + | Conjugate | ✅* | Addition | ✅ | +| - | Negate | ✅ | Subtraction | ✅ | +| × | Direction (signum) | ✅ | Multiplication | ✅ | +| ÷ | Reciprocal | ✅ | Division | ✅ | +| * | Exponential | ✅ | Power | ✅ | +| ⍟ | Natural logarithm | ✅ | Logarithm | ✅ | +| ○ | Pi multiple | ✅ | Circular functions | ✅ | +| ! | Factorial | ✅ | Binomial | ✅ | +| ? | Roll | ✅ | Deal | ✅ | +| \| | Magnitude | ✅ | Residue | ✅ | +| ⌈ | Ceiling | ✅ | Maximum | ✅ | +| ⌊ | Floor | ✅ | Minimum | ✅ | +| ⌹ | Matrix inverse | ✅ | Matrix divide | ✅ | + +\* Not implemented for complex numbers + +### Array Functions + +| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. | +| --- | --- | --- | --- | --- | +| ⍳ | Index generate | ✅ | Index of | ✅ | +| ⍸ | Where | ✅ | Interval index | ✅ | +| ⍴ | Shape | ✅ | Reshape | ✅ | +| , | Ravel | ✅ | Catenate | ✅ | +| ⌽ | Reverse | ✅ | Rotate | ✅ | +| ⍉ | Transpose | ✅ | Dyadic transpose | ✅ | +| ↑ | Mix | ✅ | Take | ✅ | +| ↓ | Split | ✅ | Drop | ✅ | +| ⍋ | Grade Up | ✅ | - | - | +| ⍒ | Grade Down | ✅ | - | - | +| ⊂ | Enclose | ✅ | Partitioned enclose | ✅ | +| ⊃ | First / Disclose | ✅ | - | - | +| ⊆ | - | - | Partition | ✅ | +| ⌷ | - | - | Index | ✅ | +| ⍷ | - | - | Find | ✅ | + +### Selection and Set Functions + +| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. | +| --- | --- | --- | --- | --- | +| ∪ | Unique | ✅ | Union | ✅ | +| ∩ | - | - | Intersection | ✅ | +| ~ | Not | ✅ | Without | ✅ | +| ⊣ | Same (identity) | ✅ | Left | ✅ | +| ⊢ | Same (identity) | ✅ | Right | ✅ | +| ≡ | Depth | ✅ | Match | ✅ | +| ≢ | Tally | ✅ | Not Match | ✅ | + +### Comparison and Logic + +| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. | +| --- | --- | --- | --- | --- | +| = | - | - | Equal | ✅ | +| ≠ | - | - | Not Equal | ✅ | +| < | - | - | Less Than | ✅ | +| > | - | - | Greater Than | ✅ | +| ≤ | - | - | Less or Equal | ✅ | +| ≥ | - | - | Greater or Equal | ✅ | +| ∧ | - | - | And | ✅ | +| ∨ | - | - | Or | ✅ | +| ⍲ | - | - | Nand | ✅ | +| ⍱ | - | - | Nor | ✅ | + +### Encoding + +| Glyph | Monadic operation | Impl. | Dyadic operation | Impl. | +| --- | --- | --- | --- | --- | +| ⊥ | - | - | Decode | ✅ | +| ⊤ | - | - | Encode | ✅ | + +### Operators (Higher-Order) + +| Glyph | Name | Impl. | Description | +| --- | --- | --- | --- | +| f/ | Reduce | ✅ | Right fold: `+/ 1 2 3` = 6 | +| f\ | Scan | ✅ | Cumulative fold: `+\ 1 2 3` = `1 3 6` | +| ∘.f | Outer Product | ✅ | All pairs: `1 2 ∘.× 3 4` | +| f.g | Inner Product | ✅ | Generalized matrix multiply | +| f¨ | Each | ✅ | Apply to each element | +| f⍨ | Commute / Selfie | ✅ | `A f⍨ B` = `B f A`; `f⍨ B` = `B f B` | +| f⍣n | Power | ✅ | Apply f n times | +| {f}∘{g} | Compose | ✅ | `f(g(⍵))` | +| {f}⍥{g} | Over | ✅ | Monadic: `f(g(⍵))`; Dyadic: `(g ⍺) f (g ⍵)` | +| {f}⍤k | Rank | ✅ | Apply f to each rank-k cell | +| {f}@i | At | ✅ | Apply f at specified indices | +| {f}⌸ | Key | ✅ | Group-by: apply f to each group | +| (f g h) | Fork (3-train) | ✅ | `(f ⍵) g (h ⍵)` -- e.g. `(+/ ÷ ≢)` for average | +| (f g) | Atop (2-train) | ✅ | `f (g ⍵)` | + +Reduce, scan, outer product, inner product, and each work with all 20 primitive operators. + +### Language Features + +| Feature | Impl. | Description | +| --- | --- | --- | +| ← Assignment | ✅ | Variable binding | +| x+←1 Modified assignment | ✅ | `x←x+1` shorthand, works with all operators | +| x[i]←v Indexed assignment | ✅ | Modify elements at 1-based indices | +| {⍵} Dfns (lambdas) | ✅ | Anonymous functions with `⍵` (right) and `⍺` (left) args | +| f←{⍵} Named functions | ✅ | Store and call functions by name | +| ∇ Self-reference | ✅ | Recursive calls within dfns | +| ⋄ : Guards / Statements | ✅ | Multi-branch conditionals and sequential execution | +| ¯ High minus | ✅ | Negative number literals | +| '...' Strings | ✅ | Character vectors | +| Nested arrays | ✅ | Arrays containing arrays via `⊂` | +| N-dimensional arrays | ✅ | Any rank via `⍴` reshape | +| Scalar extension | ✅ | Auto-broadcast scalars to arrays | + +### Examples + +``` +>>> (+/ ÷ ≢) 2 4 6 8 10 +6 +>>> (⌈/ - ⌊/) 3 1 4 1 5 9 +8 +>>> +⍨ 1 2 3 +2 4 6 +>>> {⍵+1}⍣3 ⍳ 5 +4 5 6 7 8 +>>> 2 3 ⍴ ⍳ 6 +1 2 3 4 5 6 +>>> ⍴ 2 3 ⍴ ⍳ 6 +2 3 +>>> ⌽ 1 2 3 4 5 +5 4 3 2 1 +>>> 1 2 3 = 1 3 3 +1 0 1 +>>> {⍵<2: ⍵ ⋄ (∇ ⍵-1)+∇ ⍵-2} 10 +55 +>>> ∧/ 1 1 1 0 +0 +>>> {≢⍵}⌸ 1 1 2 3 3 3 +2 1 3 +``` + +## Affiliation + +This was implemented as my capstone project for the [rustcamp](https://github.com/rust-lang-ua/rustcamp), a Rust bootcamp organized by the Ukrainian Rust Community ([website](https://www.uarust.com), [linked in](https://www.linkedin.com/company/ukrainian-rust-community), [telegram](https://t.me/rustlang_ua), [github](https://github.com/rust-lang-ua), [youtube](https://www.youtube.com/channel/UCmkAFUu2MVOX8ly0LjB6TMA), [twitter](https://twitter.com/rustukraine)). diff --git a/apiel/README.md b/apiel/README.md index 5fbeecb..9aad5fe 100644 --- a/apiel/README.md +++ b/apiel/README.md @@ -29,13 +29,14 @@ apl!("double←{⍵×2}", &mut env).unwrap(); apl!("double 1 2 3", &mut env).unwrap(); // [2.0, 4.0, 6.0] ``` -## What's supported +## What's Supported - **Arithmetic**: `+` `-` `×` `÷` `*` `⍟` `○` `!` `?` `|` `⌈` `⌊` `⌹` -- **Arrays**: `⍴` `,` `⌽` `⍉` `↑` `↓` `⍋` `⍒` `⊂` `⊃` `⊆` `⌷` `∪` `∩` `~` +- **Arrays**: `⍴` `,` `⌽` `⍉` `↑` `↓` `⍋` `⍒` `⊂` `⊃` `⊆` `⌷` `∪` `∩` `~` `⊣` `⊢` `≡` `≢` `⍷` - **Comparison**: `=` `≠` `<` `>` `≤` `≥` `∧` `∨` `⍲` `⍱` -- **Operators**: `/` (reduce) `\` (scan) `∘.` (outer product) `f.g` (inner product) `¨` (each) -- **Language**: `←` assignment, `{⍵}` dfns, `∇` recursion, `⋄` `:` guards, `¯` high minus, `'...'` strings, `⊥` `⊤` encode/decode +- **Operators**: `f/` reduce, `f\` scan, `∘.f` outer product, `f.g` inner product, `f¨` each, `f⍨` commute, `f⍣n` power, `{f}∘{g}` compose, `{f}⍥{g}` over, `{f}⍤k` rank, `{f}@i` at, `{f}⌸` key +- **Trains**: `(f g h)` fork, `(f g)` atop -- supports primitives, reductions, and named functions +- **Language**: `←` assignment, `x+←1` modified assignment, `x[i]←v` indexed assignment, `{⍵}` dfns, `∇` recursion, `⋄` `:` guards, `¯` high minus, `'...'` strings, `⊥` `⊤` encode/decode, nested arrays ## Affiliation From 5980a0a4c191053ad7de3a7e68b03ec13dfb0c8f Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Fri, 27 Mar 2026 15:11:43 +0100 Subject: [PATCH 21/25] test: add APL Wiki simple examples test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add aplwiki_simple_examples test covering all 30 examples from aplwiki.com/wiki/Simple_examples. 16 examples are actively tested, 14 are commented out with reasons (missing ⌿, ∈, array indexing for reading, dyadic trains, ⎕←). Also fixes two bugs discovered by the examples: - Reduce now works along last axis for higher-rank arrays (+/ on a matrix reduces each row, not the whole array) - 1-element arrays now broadcast like scalars in dyadic ops (',' ≠ 'text' now works correctly) --- apiel/src/parse/eval.rs | 68 +++++++++++---- apiel/tests/reference.rs | 177 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+), 18 deletions(-) diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 542aa49..60a0a4c 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -42,7 +42,10 @@ fn apply_dyadic_operation( where F: Fn(&Scalar, &Scalar) -> Result, { - if lhs.is_scalar() { + // Treat 1-element arrays as scalars for broadcasting (standard APL behavior) + let lhs_scalar = lhs.data.len() == 1; + let rhs_scalar = rhs.data.len() == 1; + if lhs_scalar && !rhs_scalar { let data = rhs .data .iter() @@ -50,7 +53,7 @@ where .collect::, _>>() .map_err(|_| (span, "Operation failed"))?; Ok(Val::new(rhs.shape.clone(), data)) - } else if rhs.is_scalar() { + } else if rhs_scalar && !lhs_scalar { let data = lhs .data .iter() @@ -58,7 +61,7 @@ where .collect::, _>>() .map_err(|_| (span, "Operation failed"))?; Ok(Val::new(lhs.shape.clone(), data)) - } else if lhs.shape == rhs.shape { + } else if lhs.shape == rhs.shape || (lhs_scalar && rhs_scalar) { let data = lhs .data .iter() @@ -1127,23 +1130,52 @@ pub fn eval( debug!("Reduce"); let term_eval = eval(lexer, *term, env)?; - // APL reduce is a right-fold: f/ a b c d = a f (b f (c f d)) + // APL reduce is a right-fold along the last axis: + // f/ a b c d = a f (b f (c f d)) let op_fn = get_operator_fn(operator); - let result = term_eval - .data - .iter() - .rev() - .cloned() - .try_fold(None, |acc, n| match acc { - None => Some(Some(n)), - Some(right) => op_fn(&n, &right).map(Some), - }) - .flatten(); - - result - .map(Val::scalar) - .ok_or((span, "Arithmetic error or invalid operation in Reduce")) + if term_eval.shape.len() <= 1 { + // Vector or scalar: reduce all elements + let result = term_eval + .data + .iter() + .rev() + .cloned() + .try_fold(None, |acc, n| match acc { + None => Some(Some(n)), + Some(right) => op_fn(&n, &right).map(Some), + }) + .flatten(); + result + .map(Val::scalar) + .ok_or((span, "Arithmetic error or invalid operation in Reduce")) + } else { + // Higher-rank: reduce along last axis + let last_dim = *term_eval.shape.last().unwrap(); + let row_count: usize = term_eval.data.len() / last_dim; + let mut results = Vec::with_capacity(row_count); + for i in 0..row_count { + let start = i * last_dim; + let row = &term_eval.data[start..start + last_dim]; + let result = row + .iter() + .rev() + .cloned() + .try_fold(None::, |acc, n| match acc { + None => Some(Some(n)), + Some(right) => op_fn(&n, &right).map(Some), + }) + .flatten() + .ok_or((span, "Arithmetic error in Reduce"))?; + results.push(result); + } + let new_shape = term_eval.shape[..term_eval.shape.len() - 1].to_vec(); + if new_shape.is_empty() { + Ok(Val::scalar(results.into_iter().next().unwrap())) + } else { + Ok(Val::new(new_shape, results)) + } + } } Expr::Scan { span, diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 6fbb6c0..79a1056 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -493,6 +493,183 @@ fn reference_tests() { } } +/// All examples from https://aplwiki.com/wiki/Simple_examples +/// Unsupported examples are commented out with the reason. +#[test] +fn aplwiki_simple_examples() { + let mut env = Env::new(); + + // --- Averaging --- + + // Ex 1: Average function definition (just a dfn, no invocation — no output to test) + // {(+⌿⍵)÷≢⍵} + + // Ex 2: +⌿ 1 2 3 4 5 6 → 21 + // ⌿ (reduce first) not implemented; adapted to / (equivalent for vectors) + assert_apl("+/ 1 2 3 4 5 6", &[21.0], "wiki ex2: sum reduce"); + + // Ex 3: 1+2+3+4+5+6 → 21 + assert_apl("1+2+3+4+5+6", &[21.0], "wiki ex3: chained addition"); + + // Ex 4: {⍺,', ',⍵}⌿ — partial application, no output + // Requires ⌿ and string array literals — skipped + + // Ex 5: {⍺,', ',⍵}⌿'cow' 'sheep' 'cat' 'dog' + // Requires ⌿ and array-of-strings syntax — skipped + + // Ex 6: {(+⌿⍵)÷≢⍵} 3 4.5 7 21 → 8.875 + // Adapted: ⌿→/, mixed int/float vector not supported so using all ints + assert_apl( + "{(+/⍵)÷≢⍵} 2 4 6 8 10", + &[6.0], + "wiki ex6: average via dfn", + ); + + // Ex 7: (+⌿÷≢) 3 4.5 7 21 → 8.875 + // Adapted: ⌿→/, all ints + assert_apl("(+/ ÷ ≢) 2 4 6 8 10", &[6.0], "wiki ex7: average via fork"); + + // Ex 8: Same as 7, just showing spacing: (+⌿ ÷ ≢) 3 4.5 7 21 + // Already covered by ex7 + + // Ex 9: (+⌿ 3 4.5 7 21) ÷ (≢ 3 4.5 7 21) → 8.875 + // Adapted: ⌿→/, all ints + assert_apl( + "(+/ 2 4 6 8 10) ÷ (≢ 2 4 6 8 10)", + &[6.0], + "wiki ex9: average expanded", + ); + + // Ex 10-11: Pseudocode explaining forks — not testable + // (f g h) ⍵ ↔ (f ⍵) g (h ⍵) + + // --- Comma-separated text --- + + // Ex 12: ','≠'comma,delimited,text' → 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 + assert_apl( + "','≠'comma,delimited,text'", + &[ + 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, + ], + "wiki ex12: comma not-equal mask", + ); + + // Ex 13: ','⊢'comma,delimited,text' → comma,delimited,text + let val = eval_to_val("','⊢'comma,delimited,text'", &mut env).unwrap(); + assert_eq!(format_val(&val), "comma,delimited,text", "wiki ex13: right tack"); + + // Ex 14: 1 1 0 1 1 1⊆'Hello!' → 'He' 'lo!' + let val = eval_to_val("1 1 0 1 1 1⊆'Hello!'", &mut env).unwrap(); + assert_eq!(format_val(&val), "(He) (lo!)", "wiki ex14: partition string"); + + // Ex 15: ','(≠⊆⊢)'comma,delimited,text' → 'comma' 'delimited' 'text' + // Requires dyadic trains — not yet supported + // assert_apl_str("','(≠⊆⊢)'comma,delimited,text'", "(comma) (delimited) (text)"); + + // Ex 16: (','≠s)⊂s←'comma,delimited,text' + // Multi-statement: assign s, then partitioned enclose + // With ⊂, each 1 in the mask starts a new partition, 0 continues. + // The mask ','≠s has 1s at non-comma positions, so each character starts + // its own group (since consecutive 1s each start a new partition in ⊂). + // This is different from ⊆ (partition) which groups consecutive 1s. + // (The wiki shows this expression without expected output.) + eval_to_val("s←'comma,delimited,text'", &mut env).unwrap(); + let val = eval_to_val("(','≠s)⊂s", &mut env).unwrap(); + assert_eq!(val.data.len(), 18, "wiki ex16: 18 partitions (one per non-comma char)"); + + // --- Membership --- + + // Ex 17: 'mississippi'∊'sp' → 0 0 1 1 0 1 1 0 1 1 0 + // ∈ (membership) not implemented + // assert_apl("'mississippi'∊'sp'", &[0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0], "wiki ex17"); + + // Ex 18: ⍸'mississippi'∊'sp' → 3 4 6 7 9 10 + // Requires ∈ + // assert_apl("⍸'mississippi'∊'sp'", &[3.0,4.0,6.0,7.0,9.0,10.0], "wiki ex18"); + + // Ex 19: 'mississippi' (⍸∊) 'sp' → 3 4 6 7 9 10 + // Requires ∈ and dyadic trains + // assert_apl("'mississippi' (⍸∊) 'sp'", &[3.0,4.0,6.0,7.0,9.0,10.0], "wiki ex19"); + + // --- Outer product with characters --- + + // Ex 20: 'abcd' ∘.= 'cabbage' → 4×7 boolean matrix + assert_apl( + "'abcd' ∘.= 'cabbage'", + &[ + 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + ], + "wiki ex20: outer product char equality", + ); + + // Ex 21: +/ 'abcd' ∘.= 'cabbage' → 2 2 1 0 + assert_apl( + "+/ 'abcd' ∘.= 'cabbage'", + &[2.0, 2.0, 1.0, 0.0], + "wiki ex21: letter frequency", + ); + + // --- Bracket matching --- + + // Ex 22: '()'∘.='plus(square(a),...' → 2×49 boolean matrix + let val = eval_to_val( + "'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", + &mut env, + ).unwrap(); + assert_eq!(val.shape, vec![2, 49], "wiki ex22: bracket outer product shape"); + + // Ex 23: -⌿'()'∘.=... → nesting delta + // ⌿ not implemented; for a 2-row matrix, -⌿ is the same as -/ (column-wise sub) + // But our -/ reduces along last axis, not first. This is NOT equivalent. + // Skipped: requires ⌿ (reduce first axis) + // assert_apl("-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", &[...]); + + // Ex 24: +\-⌿'()'∘.=... → nesting depth + // Requires ⌿ + // assert_apl("+\\-⌿'()'∘.='plus(...)'", &[...]); + + // Ex 25: 'ABBA'⍳'ABC' → 1 2 5 + assert_apl("'ABBA'⍳'ABC'", &[1.0, 2.0, 5.0], "wiki ex25a: index of chars"); + + // Ex 25 (part 2): '()'⍳'plus(square...' → bracket position mapping + assert_apl( + "'()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))'", + &[ + 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, + 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, + 1.0, 3.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, + ], + "wiki ex25b: bracket index mapping", + ); + + // Ex 26: 1 ¯1 0['()'⍳'plus(square...'] → nesting delta via indexing + // Requires array indexing x[expr] for reading — not supported (only x[i]←v) + // assert_apl("1 ¯1 0['()'⍳'plus(square(a),...']", &[...]); + + // Ex 27: +\1 ¯1 0['()'⍳'plus(square...'] → nesting depth via scan + // Requires array indexing for reading + // assert_apl("+\\1 ¯1 0['()'⍳'plus(...)']", &[...]); + + // --- Cardan grille cipher --- + + // Ex 28: ⎕←(grid grille)←5 5∘⍴¨'VRYIA...' '⌺⌺⌺ ⌺...' + // Requires ⎕←, multiple assignment, and ∘⍴¨ (bind+each) + // Skipped + + // Ex 29: grid[⍸grille=' '] → ILIKEAPL + // Requires array indexing for reading and 2D indexing + // Skipped + + // Ex 30: (' '=,grille)/,grid → ILIKEAPL + // Requires the grille/grid variables from ex28 + // Skipped +} + fn assert_apl_env(expr: &str, env: &mut Env, expected: &[f64], desc: &str) { let result = apl!(expr, env).unwrap_or_else(|e| panic!("[{desc}] `{expr}` failed: {e}")); assert_eq!( From c41a7a950098a14c04f1e3b0c39a0616b30987ea Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Sat, 28 Mar 2026 13:12:04 +0100 Subject: [PATCH 22/25] =?UTF-8?q?feat:=20add=20=E2=8C=BF=20=E2=8D=80=20?= =?UTF-8?q?=E2=88=88=20array-indexing=20dyadic-trains=20to=20pass=20wiki?= =?UTF-8?q?=20examples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add ⌿ (reduce first axis) and ⍀ (scan first axis) - Add ∈ (membership): A∈B returns 1 where elements of A appear in B - Add A[i] array indexing for reading (1-based) - Add dyadic train support: ⍺(f g h)⍵ and ⍺(f g)⍵ - Add ⊆ ⌷ ∊ to train function-reference recognition - Allow grammar shift/reduce conflicts (error_on_conflicts false) - Uncomment all feasible APL Wiki examples (10 newly enabled) --- apiel/build.rs | 1 + apiel/src/apiel.l | 3 + apiel/src/apiel.y | 40 +++++++++++- apiel/src/parse/eval.rs | 132 +++++++++++++++++++++++++++++++++++++++ apiel/src/parse/mod.rs | 55 ++++++++++++++-- apiel/tests/reference.rs | 100 ++++++++++++++++++++--------- 6 files changed, 295 insertions(+), 36 deletions(-) diff --git a/apiel/build.rs b/apiel/build.rs index dd5a109..4b3e4a6 100644 --- a/apiel/build.rs +++ b/apiel/build.rs @@ -10,6 +10,7 @@ fn main() { .lrpar_config(|ctp| { ctp.yacckind(YaccKind::Grmtools) .rust_edition(lrpar::RustEdition::Rust2021) + .error_on_conflicts(false) .grammar_in_src_dir("apiel.y") .unwrap() }) diff --git a/apiel/src/apiel.l b/apiel/src/apiel.l index 8f98eef..e4870db 100644 --- a/apiel/src/apiel.l +++ b/apiel/src/apiel.l @@ -19,6 +19,8 @@ \⌊/ "MIN" \⍳ "IOTA" \⍸ "IOTA_U" +\⌿ "REDUCEFIRST" +\⍀ "SCANFIRST" \/ "/" \\ "\" \, "," @@ -70,6 +72,7 @@ \≡ "MATCH" \≢ "NOTMATCH" \⍷ "FIND" +\∊ "MEMBERSHIP" \⋄ "DIAMOND" : ":" \( "(" diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index e8d244a..d8e80eb 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -1,7 +1,7 @@ %start Expr %avoid_insert "INT" %expect-unused Unmatched "UNMATCHED" -%expect 1 +%expect 3 %% Expr -> Result: Term { $1 } @@ -220,6 +220,9 @@ Term -> Result: | Factor 'FIND' Term { Ok(Expr::Find{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } + | Factor 'MEMBERSHIP' Term { + Ok(Expr::Membership{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) + } | Factor 'ENCLOSE' Term { Ok(Expr::PartitionedEnclose{ span: $span, lhs: Box::new($1?), rhs: Box::new($3?) }) } @@ -386,6 +389,9 @@ DfnBody -> Result: Factor -> Result: '(' Expr ')' { $2 } + | Factor '[' Expr ']' { + Ok(Expr::IndexRead{ span: $span, array: Box::new($1?), indices: Box::new($3?) }) + } | 'VEC' { let elements = match $1 { @@ -455,6 +461,18 @@ Factor -> Result: Err(_) => Err(()) } } + | Operator 'REDUCEFIRST' Term { + match $1 { + Ok(op) => Ok(Expr::ReduceFirst{ span: $span, operator: op, term: Box::new($3?) }), + Err(_) => Err(()) + } + } + | Operator 'SCANFIRST' Term { + match $1 { + Ok(op) => Ok(Expr::ScanFirst{ span: $span, operator: op, term: Box::new($3?) }), + Err(_) => Err(()) + } + } ; Operator -> Result: @@ -1029,6 +1047,26 @@ pub enum Expr { operator: Operator, term: Box, }, + ReduceFirst { + span: Span, + operator: Operator, + term: Box, + }, + ScanFirst { + span: Span, + operator: Operator, + term: Box, + }, + Membership { + span: Span, + lhs: Box, + rhs: Box, + }, + IndexRead { + span: Span, + array: Box, + indices: Box, + }, // Values diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index 60a0a4c..bf69d6d 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -1205,6 +1205,138 @@ pub fn eval( } Ok(Val::vector(data)) } + Expr::ReduceFirst { + span, + operator, + term, + } => { + debug!("Reduce First Axis"); + let term_eval = eval(lexer, *term, env)?; + let op_fn = get_operator_fn(operator); + + if term_eval.shape.len() <= 1 { + // Vector: same as regular reduce + let result = term_eval + .data + .iter() + .rev() + .cloned() + .try_fold(None, |acc, n| match acc { + None => Some(Some(n)), + Some(right) => op_fn(&n, &right).map(Some), + }) + .flatten(); + result + .map(Val::scalar) + .ok_or((span, "Arithmetic error in ReduceFirst")) + } else { + // Higher-rank: reduce along FIRST axis (columns) + let first_dim = term_eval.shape[0]; + let stride: usize = term_eval.data.len() / first_dim; + let mut results = Vec::with_capacity(stride); + for col in 0..stride { + let column: Vec = (0..first_dim) + .map(|row| term_eval.data[row * stride + col].clone()) + .collect(); + let result = column + .iter() + .rev() + .cloned() + .try_fold(None::, |acc, n| match acc { + None => Some(Some(n)), + Some(right) => op_fn(&n, &right).map(Some), + }) + .flatten() + .ok_or((span, "Arithmetic error in ReduceFirst"))?; + results.push(result); + } + let new_shape = term_eval.shape[1..].to_vec(); + if new_shape.is_empty() { + Ok(Val::scalar(results.into_iter().next().unwrap())) + } else { + Ok(Val::new(new_shape, results)) + } + } + } + Expr::ScanFirst { + span, + operator, + term, + } => { + debug!("Scan First Axis"); + let term_eval = eval(lexer, *term, env)?; + let op_fn = get_operator_fn(operator); + + if term_eval.shape.len() <= 1 { + // Vector: same as regular scan + let mut data = Vec::with_capacity(term_eval.data.len()); + for i in 0..term_eval.data.len() { + let prefix = &term_eval.data[..=i]; + let result = prefix + .iter() + .rev() + .cloned() + .try_fold(None::, |acc, n| match acc { + None => Some(Some(n)), + Some(right) => op_fn(&n, &right).map(Some), + }) + .flatten() + .ok_or((span, "Arithmetic error in ScanFirst"))?; + data.push(result); + } + Ok(Val::vector(data)) + } else { + // Higher-rank: scan along FIRST axis (columns) + let first_dim = term_eval.shape[0]; + let stride: usize = term_eval.data.len() / first_dim; + let mut data = term_eval.data.clone(); + for col in 0..stride { + for row in 1..first_dim { + let prev = data[(row - 1) * stride + col].clone(); + let curr = data[row * stride + col].clone(); + data[row * stride + col] = op_fn(&prev, &curr) + .ok_or((span, "Arithmetic error in ScanFirst"))?; + } + } + Ok(Val::new(term_eval.shape.clone(), data)) + } + } + Expr::Membership { span: _, lhs, rhs } => { + debug!("Dyadic Membership"); + let lhs_eval = eval(lexer, *lhs, env)?; + let rhs_eval = eval(lexer, *rhs, env)?; + let data = lhs_eval + .data + .iter() + .map(|l| { + let found = rhs_eval.data.iter().any(|r| l == r); + Scalar::Integer(if found { 1 } else { 0 }) + }) + .collect(); + Ok(Val::new(lhs_eval.shape.clone(), data)) + } + Expr::IndexRead { span, array, indices } => { + debug!("Index Read"); + let arr = eval(lexer, *array, env)?; + let idx_val = eval(lexer, *indices, env)?; + let indices: Vec = idx_val + .data + .iter() + .map(|s| { + let i: usize = s.clone().try_into().map_err(|_| (span, "Index must be integer"))?; + if i < 1 || i > arr.data.len() { + return Err((span, "Index out of bounds")); + } + Ok(i - 1) + }) + .collect::, _>>()?; + let data: Vec = indices.iter().map(|&i| arr.data[i].clone()).collect(); + if data.len() == 1 { + Ok(Val::scalar(data.into_iter().next().unwrap())) + } else { + Ok(Val::vector(data)) + } + } Expr::Variable { span, name } => { debug!("Variable: {name}"); env.vars diff --git a/apiel/src/parse/mod.rs b/apiel/src/parse/mod.rs index 8c676a3..754f38f 100644 --- a/apiel/src/parse/mod.rs +++ b/apiel/src/parse/mod.rs @@ -43,7 +43,7 @@ fn is_monadic_fn_tok(t: &str) -> bool { matches!( t, "⍴" | "⌽" | "⍳" | "⍋" | "⍒" | "≢" | "≡" | "∪" | "⊃" | "⊂" | "⍉" | "~" | "⊣" - | "⊢" | "⌹" | "⍸" | "⍷" | "↑" | "↓" + | "⊢" | "⌹" | "⍸" | "⍷" | "↑" | "↓" | "∊" | "⊆" | "⌷" ) } @@ -143,9 +143,11 @@ fn try_parse_train(tokens: &[Tok]) -> Option> { continue; } - // Operator possibly followed by / or \ (reduce/scan) + // Operator possibly followed by / or \ or ⌿ or ⍀ (reduce/scan variants) if is_operator_tok(t) { - if i + 1 < tokens.len() && (tokens[i + 1].text == "/" || tokens[i + 1].text == "\\") { + if i + 1 < tokens.len() + && matches!(tokens[i + 1].text, "/" | "\\" | "⌿" | "⍀") + { fns.push(TrainFn::Derived(format!("{}{}", t, tokens[i + 1].text))); i += 2; continue; @@ -180,8 +182,8 @@ fn try_parse_train(tokens: &[Tok]) -> Option> { } } -/// Build a dfn string from train function references. -fn build_train_dfn(fns: &[TrainFn]) -> String { +/// Build a monadic dfn string from train function references. +fn build_train_dfn_monadic(fns: &[TrainFn]) -> String { if fns.len() == 3 { // Fork: (f g h) -> {(f⍵)g(h⍵)} let f_app = fns[0].apply_monadic(); @@ -196,6 +198,41 @@ fn build_train_dfn(fns: &[TrainFn]) -> String { } } +/// Build a dyadic dfn string from train function references. +fn build_train_dfn_dyadic(fns: &[TrainFn]) -> String { + if fns.len() == 3 { + // Fork: ⍺(f g h)⍵ -> {(⍺ f ⍵)g(⍺ h ⍵)} + let f = fns[0].text(); + let g = fns[1].text(); + let h = fns[2].text(); + format!("{{(⍺{f}⍵){g}(⍺{h}⍵)}}") + } else { + // Atop: ⍺(f g)⍵ -> {f(⍺ g ⍵)} + let f = fns[0].text(); + let g = fns[1].text(); + format!("{{{f}(⍺{g}⍵)}}") + } +} + +/// Check if a token text represents a value (could be left arg of a dyadic train). +fn is_left_arg_tok(t: &str) -> bool { + if t == ")" || t == "]" || t == "⍵" || t == "⍺" { + return true; + } + if t.starts_with('\'') { + return true; // STRING + } + let first = t.chars().next().unwrap_or(' '); + if first.is_ascii_digit() || first == '¯' { + return true; + } + // NAME (identifier) — could be variable as left arg + if is_name_tok(t) { + return true; + } + false +} + /// Rewrite train patterns using token-level analysis. /// /// Tokenizes the input with the lexer, identifies parenthesized groups containing @@ -243,7 +280,13 @@ fn rewrite_trains(input: &str) -> String { // Inner tokens: i+1 .. j (exclusive of parens) let inner = &tokens[i + 1..j]; if let Some(fns) = try_parse_train(inner) { - let replacement = build_train_dfn(&fns); + // Check if previous token is a value (dyadic context) + let is_dyadic = i > 0 && is_left_arg_tok(tokens[i - 1].text); + let replacement = if is_dyadic { + build_train_dfn_dyadic(&fns) + } else { + build_train_dfn_monadic(&fns) + }; replacements.push((tokens[i].start, tokens[j].end, replacement)); i = j + 1; continue; diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index 79a1056..aaa881f 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -505,8 +505,7 @@ fn aplwiki_simple_examples() { // {(+⌿⍵)÷≢⍵} // Ex 2: +⌿ 1 2 3 4 5 6 → 21 - // ⌿ (reduce first) not implemented; adapted to / (equivalent for vectors) - assert_apl("+/ 1 2 3 4 5 6", &[21.0], "wiki ex2: sum reduce"); + assert_apl("+⌿ 1 2 3 4 5 6", &[21.0], "wiki ex2: sum reduce first"); // Ex 3: 1+2+3+4+5+6 → 21 assert_apl("1+2+3+4+5+6", &[21.0], "wiki ex3: chained addition"); @@ -518,24 +517,24 @@ fn aplwiki_simple_examples() { // Requires ⌿ and array-of-strings syntax — skipped // Ex 6: {(+⌿⍵)÷≢⍵} 3 4.5 7 21 → 8.875 - // Adapted: ⌿→/, mixed int/float vector not supported so using all ints + // Adapted: mixed int/float vector not supported by VEC lexer, using all ints assert_apl( - "{(+/⍵)÷≢⍵} 2 4 6 8 10", + "{(+⌿⍵)÷≢⍵} 2 4 6 8 10", &[6.0], "wiki ex6: average via dfn", ); // Ex 7: (+⌿÷≢) 3 4.5 7 21 → 8.875 - // Adapted: ⌿→/, all ints - assert_apl("(+/ ÷ ≢) 2 4 6 8 10", &[6.0], "wiki ex7: average via fork"); + // Adapted: all ints (VEC lexer limitation) + assert_apl("(+⌿ ÷ ≢) 2 4 6 8 10", &[6.0], "wiki ex7: average via fork"); - // Ex 8: Same as 7, just showing spacing: (+⌿ ÷ ≢) 3 4.5 7 21 + // Ex 8: Same as 7, just showing spacing // Already covered by ex7 // Ex 9: (+⌿ 3 4.5 7 21) ÷ (≢ 3 4.5 7 21) → 8.875 - // Adapted: ⌿→/, all ints + // Adapted: all ints assert_apl( - "(+/ 2 4 6 8 10) ÷ (≢ 2 4 6 8 10)", + "(+⌿ 2 4 6 8 10) ÷ (≢ 2 4 6 8 10)", &[6.0], "wiki ex9: average expanded", ); @@ -564,8 +563,11 @@ fn aplwiki_simple_examples() { assert_eq!(format_val(&val), "(He) (lo!)", "wiki ex14: partition string"); // Ex 15: ','(≠⊆⊢)'comma,delimited,text' → 'comma' 'delimited' 'text' - // Requires dyadic trains — not yet supported - // assert_apl_str("','(≠⊆⊢)'comma,delimited,text'", "(comma) (delimited) (text)"); + // Dyadic fork: ⍺(f g h)⍵ = (⍺ f ⍵) g (⍺ h ⍵) + // = (','≠'comma,...') ⊆ (','⊢'comma,...') + // = boolean_mask ⊆ original_string + let val = eval_to_val("','(≠ ⊆ ⊢)'comma,delimited,text'", &mut env).unwrap(); + assert_eq!(format_val(&val), "(comma) (delimited) (text)", "wiki ex15: dyadic fork split CSV"); // Ex 16: (','≠s)⊂s←'comma,delimited,text' // Multi-statement: assign s, then partitioned enclose @@ -581,16 +583,26 @@ fn aplwiki_simple_examples() { // --- Membership --- // Ex 17: 'mississippi'∊'sp' → 0 0 1 1 0 1 1 0 1 1 0 - // ∈ (membership) not implemented - // assert_apl("'mississippi'∊'sp'", &[0.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0,1.0,1.0,0.0], "wiki ex17"); + assert_apl( + "'mississippi'∊'sp'", + &[0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0], + "wiki ex17: membership", + ); // Ex 18: ⍸'mississippi'∊'sp' → 3 4 6 7 9 10 - // Requires ∈ - // assert_apl("⍸'mississippi'∊'sp'", &[3.0,4.0,6.0,7.0,9.0,10.0], "wiki ex18"); + assert_apl( + "⍸'mississippi'∊'sp'", + &[3.0, 4.0, 6.0, 7.0, 9.0, 10.0], + "wiki ex18: where membership", + ); // Ex 19: 'mississippi' (⍸∊) 'sp' → 3 4 6 7 9 10 - // Requires ∈ and dyadic trains - // assert_apl("'mississippi' (⍸∊) 'sp'", &[3.0,4.0,6.0,7.0,9.0,10.0], "wiki ex19"); + // Dyadic atop: ⍺(⍸∊)⍵ = ⍸(⍺∊⍵) + assert_apl( + "'mississippi' (⍸ ∊) 'sp'", + &[3.0, 4.0, 6.0, 7.0, 9.0, 10.0], + "wiki ex19: dyadic atop where-membership", + ); // --- Outer product with characters --- @@ -622,15 +634,29 @@ fn aplwiki_simple_examples() { ).unwrap(); assert_eq!(val.shape, vec![2, 49], "wiki ex22: bracket outer product shape"); - // Ex 23: -⌿'()'∘.=... → nesting delta - // ⌿ not implemented; for a 2-row matrix, -⌿ is the same as -/ (column-wise sub) - // But our -/ reduces along last axis, not first. This is NOT equivalent. - // Skipped: requires ⌿ (reduce first axis) - // assert_apl("-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", &[...]); + // Ex 23: -⌿'()'∘.=... → nesting delta (row0 - row1 column-wise) + assert_apl( + "-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", + &[ + 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, + ], + "wiki ex23: bracket nesting delta", + ); - // Ex 24: +\-⌿'()'∘.=... → nesting depth - // Requires ⌿ - // assert_apl("+\\-⌿'()'∘.='plus(...)'", &[...]); + // Ex 24: +\-⌿'()'∘.=... → cumulative nesting depth + assert_apl( + "+\\-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", + &[ + 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, + ], + "wiki ex24: bracket nesting depth", + ); // Ex 25: 'ABBA'⍳'ABC' → 1 2 5 assert_apl("'ABBA'⍳'ABC'", &[1.0, 2.0, 5.0], "wiki ex25a: index of chars"); @@ -648,12 +674,28 @@ fn aplwiki_simple_examples() { ); // Ex 26: 1 ¯1 0['()'⍳'plus(square...'] → nesting delta via indexing - // Requires array indexing x[expr] for reading — not supported (only x[i]←v) - // assert_apl("1 ¯1 0['()'⍳'plus(square(a),...']", &[...]); + assert_apl( + "1 ¯1 0['()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))']", + &[ + 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, + -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, + ], + "wiki ex26: nesting delta via indexing", + ); // Ex 27: +\1 ¯1 0['()'⍳'plus(square...'] → nesting depth via scan - // Requires array indexing for reading - // assert_apl("+\\1 ¯1 0['()'⍳'plus(...)']", &[...]); + assert_apl( + "+\\1 ¯1 0['()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))']", + &[ + 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, + ], + "wiki ex27: nesting depth via scan+indexing", + ); // --- Cardan grille cipher --- From 6edec44ffcd6e86e14d022e2bd99530f7d201f05 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Mon, 30 Mar 2026 12:08:29 +0200 Subject: [PATCH 23/25] Add dfn reduce, fmt --- apiel/src/apiel.y | 39 ++++++ apiel/src/parse/eval.rs | 254 ++++++++++++++++++++++++++++++++++----- apiel/src/parse/mod.rs | 56 +++++++-- apiel/src/parse/val.rs | 23 ++-- apiel/tests/reference.rs | 195 +++++++++++++++++++++--------- 5 files changed, 466 insertions(+), 101 deletions(-) diff --git a/apiel/src/apiel.y b/apiel/src/apiel.y index d8e80eb..4da0b2f 100644 --- a/apiel/src/apiel.y +++ b/apiel/src/apiel.y @@ -175,6 +175,12 @@ Term -> Result: | '{' DfnBody '}' 'RANK' Factor Term { Ok(Expr::RankOp{ span: $span, body: Box::new($2?), rank: Box::new($5?), arg: Box::new($6?) }) } + | '{' DfnBody '}' '/' Term { + Ok(Expr::DfnReduce{ span: $span, body: Box::new($2?), term: Box::new($5?) }) + } + | '{' DfnBody '}' 'REDUCEFIRST' Term { + Ok(Expr::DfnReduceFirst{ span: $span, body: Box::new($2?), term: Box::new($5?) }) + } | 'NAME' Factor { Ok(Expr::NamedMonadic{ span: $span, name: $1.map(|l| $lexer.span_str(l.span()).to_string()).unwrap_or_default(), rhs: Box::new($2?) }) } @@ -437,11 +443,30 @@ Factor -> Result: | 'ALPHA' { Ok(Expr::Alpha { span: $span }) } + | StringArray { $1 } | 'STRING' { Ok(Expr::StringLiteral { span: $span }) } ; + StringArray -> Result: + 'STRING' 'STRING' { + Ok(Expr::StringArray { span: $span, elements: vec![ + Expr::StringLiteral { span: $1.map(|l| l.span()).unwrap_or($span) }, + Expr::StringLiteral { span: $2.map(|l| l.span()).unwrap_or($span) }, + ]}) + } + | StringArray 'STRING' { + match $1? { + Expr::StringArray { span: _, mut elements } => { + elements.push(Expr::StringLiteral { span: $2.map(|l| l.span()).unwrap_or($span) }); + Ok(Expr::StringArray { span: $span, elements }) + }, + _ => Err(()), + } + } + ; + Reduction -> Result: Operator '/' Term { match $1 { @@ -1067,6 +1092,20 @@ pub enum Expr { array: Box, indices: Box, }, + DfnReduce { + span: Span, + body: Box, + term: Box, + }, + DfnReduceFirst { + span: Span, + body: Box, + term: Box, + }, + StringArray { + span: Span, + elements: Vec, + }, // Values diff --git a/apiel/src/parse/eval.rs b/apiel/src/parse/eval.rs index bf69d6d..d57138d 100644 --- a/apiel/src/parse/eval.rs +++ b/apiel/src/parse/eval.rs @@ -697,9 +697,17 @@ pub fn eval( env.vars.insert(name, val.clone()); Ok(val) } - Expr::ModifiedAssign { span, name, operator, rhs } => { + Expr::ModifiedAssign { + span, + name, + operator, + rhs, + } => { debug!("Modified Assign: {name}"); - let current = env.vars.get(&name).cloned() + let current = env + .vars + .get(&name) + .cloned() .ok_or((span, "Undefined variable for modified assignment"))?; let rhs_eval = eval(lexer, *rhs, env)?; let op_fn = get_operator_fn(operator); @@ -709,16 +717,29 @@ pub fn eval( env.vars.insert(name, result.clone()); Ok(result) } - Expr::IndexedAssign { span, name, indices, rhs } => { + Expr::IndexedAssign { + span, + name, + indices, + rhs, + } => { debug!("Indexed Assign: {name}"); - let mut current = env.vars.get(&name).cloned() + let mut current = env + .vars + .get(&name) + .cloned() .ok_or((span, "Undefined variable for indexed assignment"))?; let idx_val = eval(lexer, *indices, env)?; let rhs_val = eval(lexer, *rhs, env)?; - let idxs: Vec = idx_val.data.iter() + let idxs: Vec = idx_val + .data + .iter() .map(|s| { - let i: usize = s.clone().try_into().map_err(|_| (span, "Index must be integer"))?; + let i: usize = s + .clone() + .try_into() + .map_err(|_| (span, "Index must be integer"))?; if i < 1 || i > current.data.len() { return Err((span, "Index out of bounds")); } @@ -1036,9 +1057,14 @@ pub fn eval( let rhs_eval = eval(lexer, *rhs, env)?; // Parse permutation vector (1-based to 0-based) - let perm: Vec = lhs_eval.data.iter() + let perm: Vec = lhs_eval + .data + .iter() .map(|s| { - let v: usize = s.clone().try_into().map_err(|_| (span, "Transpose perm must be integers"))?; + let v: usize = s + .clone() + .try_into() + .map_err(|_| (span, "Transpose perm must be integers"))?; if v < 1 || v > rhs_eval.shape.len() { return Err((span, "Transpose permutation out of range")); } @@ -1091,7 +1117,11 @@ pub fn eval( } // Convert new multi-dimensional index to flat - let new_flat: usize = new_idx.iter().zip(new_strides.iter()).map(|(&i, &s)| i * s).sum(); + let new_flat: usize = new_idx + .iter() + .zip(new_strides.iter()) + .map(|(&i, &s)| i * s) + .sum(); new_data[new_flat] = rhs_eval.data[old_flat].clone(); } @@ -1294,8 +1324,8 @@ pub fn eval( for row in 1..first_dim { let prev = data[(row - 1) * stride + col].clone(); let curr = data[row * stride + col].clone(); - data[row * stride + col] = op_fn(&prev, &curr) - .ok_or((span, "Arithmetic error in ScanFirst"))?; + data[row * stride + col] = + op_fn(&prev, &curr).ok_or((span, "Arithmetic error in ScanFirst"))?; } } Ok(Val::new(term_eval.shape.clone(), data)) @@ -1315,7 +1345,11 @@ pub fn eval( .collect(); Ok(Val::new(lhs_eval.shape.clone(), data)) } - Expr::IndexRead { span, array, indices } => { + Expr::IndexRead { + span, + array, + indices, + } => { debug!("Index Read"); let arr = eval(lexer, *array, env)?; let idx_val = eval(lexer, *indices, env)?; @@ -1323,7 +1357,10 @@ pub fn eval( .data .iter() .map(|s| { - let i: usize = s.clone().try_into().map_err(|_| (span, "Index must be integer"))?; + let i: usize = s + .clone() + .try_into() + .map_err(|_| (span, "Index must be integer"))?; if i < 1 || i > arr.data.len() { return Err((span, "Index out of bounds")); } @@ -1337,6 +1374,96 @@ pub fn eval( Ok(Val::vector(data)) } } + Expr::DfnReduce { span, body, term } => { + debug!("Dfn Reduce"); + let term_eval = eval(lexer, *term, env)?; + if term_eval.data.len() < 2 { + return Ok(term_eval); + } + let body_rc = Rc::new(*body); + // Right fold: f/ a b c = a f (b f c) + let mut acc = Val::scalar(term_eval.data.last().unwrap().clone()); + for i in (0..term_eval.data.len() - 1).rev() { + let left = match &term_eval.data[i] { + Scalar::Nested(v) => (**v).clone(), + s => Val::scalar(s.clone()), + }; + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍺".to_string(), left); + dfn_env.vars.insert("⍵".to_string(), acc); + dfn_env.fns.insert("∇".to_string(), stored); + acc = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + } + Ok(acc) + } + Expr::DfnReduceFirst { span, body, term } => { + debug!("Dfn Reduce First"); + let term_eval = eval(lexer, *term, env)?; + // For vectors, same as DfnReduce + // For matrices, reduce along first axis (column-wise) + if term_eval.shape.len() <= 1 { + let body_rc = Rc::new(*body); + if term_eval.data.len() < 2 { + return Ok(term_eval); + } + let mut acc = Val::scalar(term_eval.data.last().unwrap().clone()); + for i in (0..term_eval.data.len() - 1).rev() { + let left = match &term_eval.data[i] { + Scalar::Nested(v) => (**v).clone(), + s => Val::scalar(s.clone()), + }; + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍺".to_string(), left); + dfn_env.vars.insert("⍵".to_string(), acc); + dfn_env.fns.insert("∇".to_string(), stored); + acc = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + } + Ok(acc) + } else { + // Higher-rank: reduce along first axis + let body_rc = Rc::new(*body); + let first_dim = term_eval.shape[0]; + let stride: usize = term_eval.data.len() / first_dim; + let cell_shape = term_eval.shape[1..].to_vec(); + // Start with last row + let mut acc_data = term_eval.data[(first_dim - 1) * stride..].to_vec(); + for row in (0..first_dim - 1).rev() { + let row_data = &term_eval.data[row * stride..(row + 1) * stride]; + let left = Val::new(cell_shape.clone(), row_data.to_vec()); + let right = Val::new(cell_shape.clone(), acc_data); + let stored = StoredDfn { + body: Rc::clone(&body_rc), + source: lexer.span_str(span).to_string(), + }; + let mut dfn_env = env.clone(); + dfn_env.vars.insert("⍺".to_string(), left); + dfn_env.vars.insert("⍵".to_string(), right); + dfn_env.fns.insert("∇".to_string(), stored); + let result = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; + acc_data = result.data; + } + Ok(Val::new(cell_shape, acc_data)) + } + } + Expr::StringArray { span: _, elements } => { + debug!("String Array"); + let data: Vec = elements + .into_iter() + .map(|e| { + let val = eval(lexer, e, env)?; + Ok(Scalar::Nested(Box::new(val))) + }) + .collect::, (Span, &'static str)>>()?; + Ok(Val::vector(data)) + } Expr::Variable { span, name } => { debug!("Variable: {name}"); env.vars @@ -1367,10 +1494,17 @@ pub fn eval( dfn_env.fns.insert("∇".to_string(), stored); eval(lexer, (*body_rc).clone(), &mut dfn_env) } - Expr::RankOp { span, body, rank, arg } => { + Expr::RankOp { + span, + body, + rank, + arg, + } => { debug!("Rank Operator"); let rank_val = eval(lexer, *rank, env)?; - let k: usize = rank_val.data[0].clone().try_into() + let k: usize = rank_val.data[0] + .clone() + .try_into() .map_err(|_| (span, "Rank must be a non-negative integer"))?; let arg_val = eval(lexer, *arg, env)?; let n = arg_val.shape.len(); @@ -1414,16 +1548,26 @@ pub fn eval( final_shape.extend_from_slice(&rcs); Ok(Val::new(final_shape, results)) } - Expr::AtOp { span, body, indices, arg } => { + Expr::AtOp { + span, + body, + indices, + arg, + } => { debug!("At Operator"); let idx_val = eval(lexer, *indices, env)?; let mut arg_val = eval(lexer, *arg, env)?; let body_rc = Rc::new(*body); // Convert 1-based indices to 0-based - let idxs: Vec = idx_val.data.iter() + let idxs: Vec = idx_val + .data + .iter() .map(|s| { - let i: usize = s.clone().try_into().map_err(|_| (span, "At index must be integer"))?; + let i: usize = s + .clone() + .try_into() + .map_err(|_| (span, "At index must be integer"))?; if i < 1 || i > arg_val.data.len() { return Err((span, "At index out of bounds")); } @@ -1473,8 +1617,12 @@ pub fn eval( source: lexer.span_str(span).to_string(), }; let mut dfn_env = env.clone(); - dfn_env.vars.insert("⍺".to_string(), Val::scalar(key.clone())); - dfn_env.vars.insert("⍵".to_string(), Val::vector(indices.clone())); + dfn_env + .vars + .insert("⍺".to_string(), Val::scalar(key.clone())); + dfn_env + .vars + .insert("⍵".to_string(), Val::vector(indices.clone())); dfn_env.fns.insert("∇".to_string(), stored); let result = eval(lexer, (*body_rc).clone(), &mut dfn_env)?; results.extend(result.data); @@ -1482,10 +1630,17 @@ pub fn eval( Ok(Val::vector(results)) } - Expr::PowerOp { span, body, count, arg } => { + Expr::PowerOp { + span, + body, + count, + arg, + } => { debug!("Power Operator (dfn)"); let count_val = eval(lexer, *count, env)?; - let n: usize = count_val.data[0].clone().try_into() + let n: usize = count_val.data[0] + .clone() + .try_into() .map_err(|_| (span, "Power operator count must be a non-negative integer"))?; let mut current = eval(lexer, *arg, env)?; let body_rc = Rc::new(*body); @@ -1533,7 +1688,13 @@ pub fn eval( f_env.vars.insert("⍵".to_string(), g_result); eval(lexer, *f, &mut f_env) } - Expr::ComposeDyadicDfn { span: _, lhs, f, g, arg } => { + Expr::ComposeDyadicDfn { + span: _, + lhs, + f, + g, + arg, + } => { debug!("Compose (dyadic)"); let lhs_val = eval(lexer, *lhs, env)?; let arg_val = eval(lexer, *arg, env)?; @@ -1559,7 +1720,13 @@ pub fn eval( f_env.vars.insert("⍵".to_string(), g_result); eval(lexer, *f, &mut f_env) } - Expr::OverDyadicDfn { span: _, lhs, f, g, arg } => { + Expr::OverDyadicDfn { + span: _, + lhs, + f, + g, + arg, + } => { debug!("Over (dyadic)"); let lhs_val = eval(lexer, *lhs, env)?; let arg_val = eval(lexer, *arg, env)?; @@ -1717,7 +1884,10 @@ pub fn eval( let rhs_eval = eval(lexer, *rhs, env)?; if lhs_eval.data.len() != rhs_eval.data.len() { - return Err((span, "Partitioned enclose: left and right must be same length")); + return Err(( + span, + "Partitioned enclose: left and right must be same length", + )); } let mut partitions: Vec> = Vec::new(); @@ -2207,7 +2377,11 @@ pub fn eval( Expr::Tally { span: _, arg } => { debug!("Monadic Tally"); let arg_eval = eval(lexer, *arg, env)?; - let tally = if arg_eval.shape.is_empty() { 1 } else { arg_eval.shape[0] }; + let tally = if arg_eval.shape.is_empty() { + 1 + } else { + arg_eval.shape[0] + }; Ok(Val::scalar(Scalar::Integer(tally as i64))) } Expr::Depth { span: _, arg } => { @@ -2219,13 +2393,25 @@ pub fn eval( debug!("Dyadic Match"); let lhs_eval = eval(lexer, *lhs, env)?; let rhs_eval = eval(lexer, *rhs, env)?; - Ok(Val::scalar(Scalar::Integer(if lhs_eval.matches_val(&rhs_eval) { 1 } else { 0 }))) + Ok(Val::scalar(Scalar::Integer( + if lhs_eval.matches_val(&rhs_eval) { + 1 + } else { + 0 + }, + ))) } Expr::NotMatch { span: _, lhs, rhs } => { debug!("Dyadic Not Match"); let lhs_eval = eval(lexer, *lhs, env)?; let rhs_eval = eval(lexer, *rhs, env)?; - Ok(Val::scalar(Scalar::Integer(if lhs_eval.matches_val(&rhs_eval) { 0 } else { 1 }))) + Ok(Val::scalar(Scalar::Integer( + if lhs_eval.matches_val(&rhs_eval) { + 0 + } else { + 1 + }, + ))) } Expr::Find { span: _, lhs, rhs } => { debug!("Dyadic Find"); @@ -2238,7 +2424,11 @@ pub fn eval( let mut result = vec![Scalar::Integer(0); dlen]; if plen > 0 && plen <= dlen { for i in 0..=(dlen - plen) { - if data[i..i + plen].iter().zip(pattern.iter()).all(|(a, b)| a == b) { + if data[i..i + plen] + .iter() + .zip(pattern.iter()) + .all(|(a, b)| a == b) + { result[i] = Scalar::Integer(1); } } @@ -2272,7 +2462,11 @@ pub fn eval( op_fn(a, b).ok_or_eyre("Commute operation failed") }) } - Expr::Selfie { span, operator, arg } => { + Expr::Selfie { + span, + operator, + arg, + } => { debug!("Monadic Selfie"); let arg_eval = eval(lexer, *arg, env)?; let op_fn = get_operator_fn(operator); diff --git a/apiel/src/parse/mod.rs b/apiel/src/parse/mod.rs index 754f38f..9ca953e 100644 --- a/apiel/src/parse/mod.rs +++ b/apiel/src/parse/mod.rs @@ -33,8 +33,28 @@ struct Tok<'a> { fn is_operator_tok(t: &str) -> bool { matches!( t, - "+" | "-" | "×" | "÷" | "*" | "⍟" | "○" | "!" | "?" | "|" | "⌈" | "⌊" - | "=" | "≠" | "<" | ">" | "≤" | "≥" | "∧" | "∨" | "⍲" | "⍱" | "," + "+" | "-" + | "×" + | "÷" + | "*" + | "⍟" + | "○" + | "!" + | "?" + | "|" + | "⌈" + | "⌊" + | "=" + | "≠" + | "<" + | ">" + | "≤" + | "≥" + | "∧" + | "∨" + | "⍲" + | "⍱" + | "," ) } @@ -42,8 +62,27 @@ fn is_operator_tok(t: &str) -> bool { fn is_monadic_fn_tok(t: &str) -> bool { matches!( t, - "⍴" | "⌽" | "⍳" | "⍋" | "⍒" | "≢" | "≡" | "∪" | "⊃" | "⊂" | "⍉" | "~" | "⊣" - | "⊢" | "⌹" | "⍸" | "⍷" | "↑" | "↓" | "∊" | "⊆" | "⌷" + "⍴" | "⌽" + | "⍳" + | "⍋" + | "⍒" + | "≢" + | "≡" + | "∪" + | "⊃" + | "⊂" + | "⍉" + | "~" + | "⊣" + | "⊢" + | "⌹" + | "⍸" + | "⍷" + | "↑" + | "↓" + | "∊" + | "⊆" + | "⌷" ) } @@ -126,7 +165,10 @@ fn try_parse_train(tokens: &[Tok]) -> Option> { } // Reject if nested parens/braces are present - if tokens.iter().any(|t| matches!(t.text, "(" | ")" | "{" | "}")) { + if tokens + .iter() + .any(|t| matches!(t.text, "(" | ")" | "{" | "}")) + { return None; } @@ -145,9 +187,7 @@ fn try_parse_train(tokens: &[Tok]) -> Option> { // Operator possibly followed by / or \ or ⌿ or ⍀ (reduce/scan variants) if is_operator_tok(t) { - if i + 1 < tokens.len() - && matches!(tokens[i + 1].text, "/" | "\\" | "⌿" | "⍀") - { + if i + 1 < tokens.len() && matches!(tokens[i + 1].text, "/" | "\\" | "⌿" | "⍀") { fns.push(TrainFn::Derived(format!("{}{}", t, tokens[i + 1].text))); i += 2; continue; diff --git a/apiel/src/parse/val.rs b/apiel/src/parse/val.rs index 07db028..f0457d0 100644 --- a/apiel/src/parse/val.rs +++ b/apiel/src/parse/val.rs @@ -307,10 +307,15 @@ impl Val { } else { let has_nested = self.data.iter().any(|s| matches!(s, Scalar::Nested(_))); if has_nested { - 1 + self.data.iter().map(|s| match s { - Scalar::Nested(inner) => inner.depth(), - _ => 0, - }).max().unwrap_or(0) + 1 + self + .data + .iter() + .map(|s| match s { + Scalar::Nested(inner) => inner.depth(), + _ => 0, + }) + .max() + .unwrap_or(0) } else { 1 } @@ -320,12 +325,14 @@ impl Val { pub fn matches_val(&self, other: &Val) -> bool { self.shape == other.shape && self.data.len() == other.data.len() - && self.data.iter().zip(other.data.iter()).all(|(a, b)| { - match (a, b) { + && self + .data + .iter() + .zip(other.data.iter()) + .all(|(a, b)| match (a, b) { (Scalar::Nested(va), Scalar::Nested(vb)) => va.matches_val(vb), _ => a == b, - } - }) + }) } pub fn from_f64s(values: &[f64]) -> Self { diff --git a/apiel/tests/reference.rs b/apiel/tests/reference.rs index aaa881f..2de0c11 100644 --- a/apiel/tests/reference.rs +++ b/apiel/tests/reference.rs @@ -229,8 +229,16 @@ fn reference_tests() { ("⍉ 1 2 3", &[1.0, 2.0, 3.0], "transpose vector noop"), ("⍉ 5", &[5.0], "transpose scalar noop"), // Dyadic transpose ⍉ - ("1 2 ⍉ 2 3 ⍴ ⍳ 6", &[1.0, 2.0, 3.0, 4.0, 5.0, 6.0], "dyadic transpose: identity perm"), - ("2 1 ⍉ 2 3 ⍴ ⍳ 6", &[1.0, 4.0, 2.0, 5.0, 3.0, 6.0], "dyadic transpose: swap axes"), + ( + "1 2 ⍉ 2 3 ⍴ ⍳ 6", + &[1.0, 2.0, 3.0, 4.0, 5.0, 6.0], + "dyadic transpose: identity perm", + ), + ( + "2 1 ⍉ 2 3 ⍴ ⍳ 6", + &[1.0, 4.0, 2.0, 5.0, 3.0, 6.0], + "dyadic transpose: swap axes", + ), // Bool ops (∧ ∨ ⍲ ⍱) ("1 ∧ 1", &[1.0], "and 1 1"), ("1 ∧ 0", &[0.0], "and 1 0"), @@ -417,15 +425,35 @@ fn reference_tests() { ("⊣ 1 2 3", &[1.0, 2.0, 3.0], "monadic left tack vector"), ("5 ⊢ 42", &[42.0], "dyadic right tack returns right"), ("5 ⊣ 42", &[5.0], "dyadic left tack returns left"), - ("1 2 3 ⊢ 4 5 6", &[4.0, 5.0, 6.0], "dyadic right tack vectors"), - ("1 2 3 ⊣ 4 5 6", &[1.0, 2.0, 3.0], "dyadic left tack vectors"), + ( + "1 2 3 ⊢ 4 5 6", + &[4.0, 5.0, 6.0], + "dyadic right tack vectors", + ), + ( + "1 2 3 ⊣ 4 5 6", + &[1.0, 2.0, 3.0], + "dyadic left tack vectors", + ), // Tally ≢ ("≢ 1 2 3 4 5", &[5.0], "tally of vector"), ("≢ 42", &[1.0], "tally of scalar"), // Find ⍷ - ("2 3 ⍷ 1 2 3 4 5", &[0.0, 1.0, 0.0, 0.0, 0.0], "find subsequence"), - ("5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 0.0, 0.0, 1.0], "find single element"), - ("3 4 5 ⍷ 1 2 3 4 5", &[0.0, 0.0, 1.0, 0.0, 0.0], "find at end"), + ( + "2 3 ⍷ 1 2 3 4 5", + &[0.0, 1.0, 0.0, 0.0, 0.0], + "find subsequence", + ), + ( + "5 ⍷ 1 2 3 4 5", + &[0.0, 0.0, 0.0, 0.0, 1.0], + "find single element", + ), + ( + "3 4 5 ⍷ 1 2 3 4 5", + &[0.0, 0.0, 1.0, 0.0, 0.0], + "find at end", + ), ("9 ⍷ 1 2 3", &[0.0, 0.0, 0.0], "find missing element"), // Extended operator reductions ("∧/ 1 1 1 0", &[0.0], "and-reduce"), @@ -433,7 +461,11 @@ fn reference_tests() { ("∨/ 0 0 1 0", &[1.0], "or-reduce (any)"), ("∨/ 0 0 0 0", &[0.0], "or-reduce all false"), ("≠/ 1 0 1 1", &[1.0], "neq-reduce (parity)"), - ("1 2 3 ∘.≤ 1 2 3", &[1.0,1.0,1.0, 0.0,1.0,1.0, 0.0,0.0,1.0], "outer product leq"), + ( + "1 2 3 ∘.≤ 1 2 3", + &[1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0], + "outer product leq", + ), // Commute ⍨ ("+⍨ 3", &[6.0], "selfie: 3+3"), ("+⍨ 1 2 3", &[2.0, 4.0, 6.0], "selfie vector: double"), @@ -442,7 +474,11 @@ fn reference_tests() { ("3 ÷⍨ 12", &[4.0], "commute: 12÷3"), ("2 *⍨ 3", &[9.0], "commute: 3*2=9"), // Power operator ⍣ - ("{⍵+1}⍣3 ⍳ 5", &[4.0, 5.0, 6.0, 7.0, 8.0], "power: increment 3 times"), + ( + "{⍵+1}⍣3 ⍳ 5", + &[4.0, 5.0, 6.0, 7.0, 8.0], + "power: increment 3 times", + ), ("{⍵×2}⍣4 (1)", &[16.0], "power: double 4 times"), ("{⍵+1}⍣0 (5)", &[5.0], "power 0 is identity"), // Compose ∘ @@ -458,15 +494,31 @@ fn reference_tests() { ("(⌊ ÷) 7", &[0.0], "atop: floor(reciprocal(7))"), // Rank operator ⍤ ("{+/⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[6.0, 15.0], "rank 1: sum each row"), - ("{⌽⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", &[3.0, 2.0, 1.0, 6.0, 5.0, 4.0], "rank 1: reverse each row"), + ( + "{⌽⍵}⍤1 ⊢ 2 3 ⍴ ⍳ 6", + &[3.0, 2.0, 1.0, 6.0, 5.0, 4.0], + "rank 1: reverse each row", + ), // Over ⍥ ("{⍵×2}⍥{⍵+1} 5", &[12.0], "over monadic: (5+1)×2 = 12"), ("3 {⍺+⍵}⍥{⍵×⍵} 4", &[25.0], "over dyadic: 3²+4² = 25"), // At operator @ - ("{⍵×10}@(2 3) ⊢ ⍳ 5", &[1.0, 20.0, 30.0, 4.0, 5.0], "at: multiply at indices"), - ("{0}@(1 3 5) ⊢ ⍳ 5", &[0.0, 2.0, 0.0, 4.0, 0.0], "at: replace at indices"), + ( + "{⍵×10}@(2 3) ⊢ ⍳ 5", + &[1.0, 20.0, 30.0, 4.0, 5.0], + "at: multiply at indices", + ), + ( + "{0}@(1 3 5) ⊢ ⍳ 5", + &[0.0, 2.0, 0.0, 4.0, 0.0], + "at: replace at indices", + ), // Key operator ⌸ - ("{≢⍵}⌸ 1 1 2 3 3 3", &[2.0, 1.0, 3.0], "key: count each group"), + ( + "{≢⍵}⌸ 1 1 2 3 3 3", + &[2.0, 1.0, 3.0], + "key: count each group", + ), ("{⍺}⌸ 1 1 2 3 3 3", &[1.0, 2.0, 3.0], "key: unique keys"), ]; @@ -518,11 +570,7 @@ fn aplwiki_simple_examples() { // Ex 6: {(+⌿⍵)÷≢⍵} 3 4.5 7 21 → 8.875 // Adapted: mixed int/float vector not supported by VEC lexer, using all ints - assert_apl( - "{(+⌿⍵)÷≢⍵} 2 4 6 8 10", - &[6.0], - "wiki ex6: average via dfn", - ); + assert_apl("{(+⌿⍵)÷≢⍵} 2 4 6 8 10", &[6.0], "wiki ex6: average via dfn"); // Ex 7: (+⌿÷≢) 3 4.5 7 21 → 8.875 // Adapted: all ints (VEC lexer limitation) @@ -548,26 +596,38 @@ fn aplwiki_simple_examples() { assert_apl( "','≠'comma,delimited,text'", &[ - 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, + 1.0, 1.0, 1.0, ], "wiki ex12: comma not-equal mask", ); // Ex 13: ','⊢'comma,delimited,text' → comma,delimited,text let val = eval_to_val("','⊢'comma,delimited,text'", &mut env).unwrap(); - assert_eq!(format_val(&val), "comma,delimited,text", "wiki ex13: right tack"); + assert_eq!( + format_val(&val), + "comma,delimited,text", + "wiki ex13: right tack" + ); // Ex 14: 1 1 0 1 1 1⊆'Hello!' → 'He' 'lo!' let val = eval_to_val("1 1 0 1 1 1⊆'Hello!'", &mut env).unwrap(); - assert_eq!(format_val(&val), "(He) (lo!)", "wiki ex14: partition string"); + assert_eq!( + format_val(&val), + "(He) (lo!)", + "wiki ex14: partition string" + ); // Ex 15: ','(≠⊆⊢)'comma,delimited,text' → 'comma' 'delimited' 'text' // Dyadic fork: ⍺(f g h)⍵ = (⍺ f ⍵) g (⍺ h ⍵) // = (','≠'comma,...') ⊆ (','⊢'comma,...') // = boolean_mask ⊆ original_string let val = eval_to_val("','(≠ ⊆ ⊢)'comma,delimited,text'", &mut env).unwrap(); - assert_eq!(format_val(&val), "(comma) (delimited) (text)", "wiki ex15: dyadic fork split CSV"); + assert_eq!( + format_val(&val), + "(comma) (delimited) (text)", + "wiki ex15: dyadic fork split CSV" + ); // Ex 16: (','≠s)⊂s←'comma,delimited,text' // Multi-statement: assign s, then partitioned enclose @@ -578,7 +638,11 @@ fn aplwiki_simple_examples() { // (The wiki shows this expression without expected output.) eval_to_val("s←'comma,delimited,text'", &mut env).unwrap(); let val = eval_to_val("(','≠s)⊂s", &mut env).unwrap(); - assert_eq!(val.data.len(), 18, "wiki ex16: 18 partitions (one per non-comma char)"); + assert_eq!( + val.data.len(), + 18, + "wiki ex16: 18 partitions (one per non-comma char)" + ); // --- Membership --- @@ -610,10 +674,8 @@ fn aplwiki_simple_examples() { assert_apl( "'abcd' ∘.= 'cabbage'", &[ - 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, - 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, - 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, - 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ], "wiki ex20: outer product char equality", ); @@ -631,17 +693,21 @@ fn aplwiki_simple_examples() { let val = eval_to_val( "'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", &mut env, - ).unwrap(); - assert_eq!(val.shape, vec![2, 49], "wiki ex22: bracket outer product shape"); + ) + .unwrap(); + assert_eq!( + val.shape, + vec![2, 49], + "wiki ex22: bracket outer product shape" + ); // Ex 23: -⌿'()'∘.=... → nesting delta (row0 - row1 column-wise) assert_apl( "-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", &[ - 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, - 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, - 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, + 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, ], "wiki ex23: bracket nesting delta", ); @@ -650,25 +716,27 @@ fn aplwiki_simple_examples() { assert_apl( "+\\-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))'", &[ - 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, - 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, - 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, + 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, ], "wiki ex24: bracket nesting depth", ); // Ex 25: 'ABBA'⍳'ABC' → 1 2 5 - assert_apl("'ABBA'⍳'ABC'", &[1.0, 2.0, 5.0], "wiki ex25a: index of chars"); + assert_apl( + "'ABBA'⍳'ABC'", + &[1.0, 2.0, 5.0], + "wiki ex25a: index of chars", + ); // Ex 25 (part 2): '()'⍳'plus(square...' → bracket position mapping assert_apl( "'()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))'", &[ - 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, - 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, - 1.0, 3.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, - 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, + 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 2.0, 3.0, 3.0, 3.0, + 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, + 3.0, 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, ], "wiki ex25b: bracket index mapping", ); @@ -677,10 +745,9 @@ fn aplwiki_simple_examples() { assert_apl( "1 ¯1 0['()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))']", &[ - 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, - 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, - 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, + 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, ], "wiki ex26: nesting delta via indexing", ); @@ -689,10 +756,9 @@ fn aplwiki_simple_examples() { assert_apl( "+\\1 ¯1 0['()'⍳'plus(square(a),plus(square(b),times(2,plus(a,b)))']", &[ - 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, - 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, - 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, + 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 3.0, 2.0, 1.0, ], "wiki ex27: nesting depth via scan+indexing", ); @@ -947,7 +1013,11 @@ fn partitioned_enclose() { assert_eq!(format_val(&val), "(1 2) (3 4 5)", "partition: two groups"); let val = eval_to_val("1 1 1 ⊂ 10 20 30", &mut env).unwrap(); - assert_eq!(format_val(&val), "(10) (20) (30)", "partition: each element"); + assert_eq!( + format_val(&val), + "(10) (20) (30)", + "partition: each element" + ); let val = eval_to_val("1 0 0 0 0 ⊂ 1 2 3 4 5", &mut env).unwrap(); assert_eq!(format_val(&val), "(1 2 3 4 5)", "partition: single group"); @@ -966,8 +1036,23 @@ fn modified_assignment() { #[test] fn indexed_assignment() { let mut env = Env::new(); - assert_apl_env("x←1 2 3 4 5", &mut env, &[1.0, 2.0, 3.0, 4.0, 5.0], "assign vector"); - assert_apl_env("x[3]←99", &mut env, &[1.0, 2.0, 99.0, 4.0, 5.0], "index assign single"); + assert_apl_env( + "x←1 2 3 4 5", + &mut env, + &[1.0, 2.0, 3.0, 4.0, 5.0], + "assign vector", + ); + assert_apl_env( + "x[3]←99", + &mut env, + &[1.0, 2.0, 99.0, 4.0, 5.0], + "index assign single", + ); assert_apl_env("x", &mut env, &[1.0, 2.0, 99.0, 4.0, 5.0], "x modified"); - assert_apl_env("x[1 5]←0", &mut env, &[0.0, 2.0, 99.0, 4.0, 0.0], "index assign multiple"); + assert_apl_env( + "x[1 5]←0", + &mut env, + &[0.0, 2.0, 99.0, 4.0, 0.0], + "index assign multiple", + ); } From ec69211628c7f33bcac12883058103900d3e2c01 Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Mon, 30 Mar 2026 12:08:19 +0200 Subject: [PATCH 24/25] Add web playground with WASM --- Cargo.toml | 1 + apiel-wasm/Cargo.toml | 13 ++ apiel-wasm/src/lib.rs | 26 +++ docs/index.html | 263 ++++++++++++++++++++++++ docs/pkg/apiel_wasm.d.ts | 43 ++++ docs/pkg/apiel_wasm.js | 333 +++++++++++++++++++++++++++++++ docs/pkg/apiel_wasm_bg.wasm | Bin 0 -> 1812214 bytes docs/pkg/apiel_wasm_bg.wasm.d.ts | 12 ++ docs/pkg/package.json | 15 ++ 9 files changed, 706 insertions(+) create mode 100644 apiel-wasm/Cargo.toml create mode 100644 apiel-wasm/src/lib.rs create mode 100644 docs/index.html create mode 100644 docs/pkg/apiel_wasm.d.ts create mode 100644 docs/pkg/apiel_wasm.js create mode 100644 docs/pkg/apiel_wasm_bg.wasm create mode 100644 docs/pkg/apiel_wasm_bg.wasm.d.ts create mode 100644 docs/pkg/package.json diff --git a/Cargo.toml b/Cargo.toml index 84db4e1..cc72574 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ resolver = "2" members = [ "apiel", "apiel-cli", + "apiel-wasm", ] [workspace.dependencies] diff --git a/apiel-wasm/Cargo.toml b/apiel-wasm/Cargo.toml new file mode 100644 index 0000000..07a16ef --- /dev/null +++ b/apiel-wasm/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "apiel-wasm" +version = "0.2.0" +edition = "2024" +publish = false + +[lib] +crate-type = ["cdylib"] + +[dependencies] +apiel = { path = "../apiel" } +wasm-bindgen = "0.2" +getrandom = { version = "0.2", features = ["js"] } diff --git a/apiel-wasm/src/lib.rs b/apiel-wasm/src/lib.rs new file mode 100644 index 0000000..82981b3 --- /dev/null +++ b/apiel-wasm/src/lib.rs @@ -0,0 +1,26 @@ +use apiel::Env; +use apiel::parse::{eval_to_val, format_val}; +use std::cell::RefCell; +use wasm_bindgen::prelude::*; + +thread_local! { + static ENV: RefCell = RefCell::new(Env::new()); +} + +#[wasm_bindgen] +pub fn eval_apl(input: &str) -> String { + ENV.with(|env| { + let mut env = env.borrow_mut(); + match eval_to_val(input, &mut env) { + Ok(val) => format_val(&val), + Err(e) => format!("ERROR: {e}"), + } + }) +} + +#[wasm_bindgen] +pub fn reset_env() { + ENV.with(|env| { + *env.borrow_mut() = Env::new(); + }); +} diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..d160cdc --- /dev/null +++ b/docs/index.html @@ -0,0 +1,263 @@ + + + + + + apiel - APL in Rust + + + +
+

apiel / toy APL in Rust

+ +
+
+
+ >>> + +
+
+ Enter evaluate Up/Down history + Ctrl+L clear — APL chars: + click to show keyboard +
+ +
+
+
+ + + + diff --git a/docs/pkg/apiel_wasm.d.ts b/docs/pkg/apiel_wasm.d.ts new file mode 100644 index 0000000..95d1d64 --- /dev/null +++ b/docs/pkg/apiel_wasm.d.ts @@ -0,0 +1,43 @@ +/* tslint:disable */ +/* eslint-disable */ + +export function eval_apl(input: string): string; + +export function reset_env(): void; + +export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; + +export interface InitOutput { + readonly memory: WebAssembly.Memory; + readonly eval_apl: (a: number, b: number) => [number, number]; + readonly reset_env: () => void; + readonly __wbindgen_exn_store: (a: number) => void; + readonly __externref_table_alloc: () => number; + readonly __wbindgen_externrefs: WebAssembly.Table; + readonly __wbindgen_malloc: (a: number, b: number) => number; + readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __wbindgen_start: () => void; +} + +export type SyncInitInput = BufferSource | WebAssembly.Module; + +/** + * Instantiates the given `module`, which can either be bytes or + * a precompiled `WebAssembly.Module`. + * + * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. + * + * @returns {InitOutput} + */ +export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; + +/** + * If `module_or_path` is {RequestInfo} or {URL}, makes a request and + * for everything else, calls `WebAssembly.instantiate` directly. + * + * @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. + * + * @returns {Promise} + */ +export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/docs/pkg/apiel_wasm.js b/docs/pkg/apiel_wasm.js new file mode 100644 index 0000000..983f3df --- /dev/null +++ b/docs/pkg/apiel_wasm.js @@ -0,0 +1,333 @@ +/* @ts-self-types="./apiel_wasm.d.ts" */ + +/** + * @param {string} input + * @returns {string} + */ +export function eval_apl(input) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.eval_apl(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +export function reset_env() { + wasm.reset_env(); +} + +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg___wbindgen_is_function_2a95406423ea8626: function(arg0) { + const ret = typeof(arg0) === 'function'; + return ret; + }, + __wbg___wbindgen_is_object_59a002e76b059312: function(arg0) { + const val = arg0; + const ret = typeof(val) === 'object' && val !== null; + return ret; + }, + __wbg___wbindgen_is_string_624d5244bb2bc87c: function(arg0) { + const ret = typeof(arg0) === 'string'; + return ret; + }, + __wbg___wbindgen_is_undefined_87a3a837f331fef5: function(arg0) { + const ret = arg0 === undefined; + return ret; + }, + __wbg___wbindgen_throw_5549492daedad139: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_call_8f5d7bb070283508: function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.call(arg1, arg2); + return ret; + }, arguments); }, + __wbg_crypto_38df2bab126b63dc: function(arg0) { + const ret = arg0.crypto; + return ret; + }, + __wbg_getRandomValues_c44a50d8cfdaebeb: function() { return handleError(function (arg0, arg1) { + arg0.getRandomValues(arg1); + }, arguments); }, + __wbg_length_e6e1633fbea6cfa9: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_msCrypto_bd5a034af96bcba6: function(arg0) { + const ret = arg0.msCrypto; + return ret; + }, + __wbg_new_with_length_0f3108b57e05ed7c: function(arg0) { + const ret = new Uint8Array(arg0 >>> 0); + return ret; + }, + __wbg_node_84ea875411254db1: function(arg0) { + const ret = arg0.node; + return ret; + }, + __wbg_process_44c7a14e11e9f69e: function(arg0) { + const ret = arg0.process; + return ret; + }, + __wbg_prototypesetcall_3875d54d12ef2eec: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); + }, + __wbg_randomFillSync_6c25eac9869eb53c: function() { return handleError(function (arg0, arg1) { + arg0.randomFillSync(arg1); + }, arguments); }, + __wbg_require_b4edbdcf3e2a1ef0: function() { return handleError(function () { + const ret = module.require; + return ret; + }, arguments); }, + __wbg_static_accessor_GLOBAL_8dfb7f5e26ebe523: function() { + const ret = typeof global === 'undefined' ? null : global; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_GLOBAL_THIS_941154efc8395cdd: function() { + const ret = typeof globalThis === 'undefined' ? null : globalThis; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_SELF_58dac9af822f561f: function() { + const ret = typeof self === 'undefined' ? null : self; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_WINDOW_ee64f0b3d8354c0b: function() { + const ret = typeof window === 'undefined' ? null : window; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_subarray_035d32bb24a7d55d: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_versions_276b2795b1c6a219: function(arg0) { + const ret = arg0.versions; + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0, arg1) { + // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`. + const ret = getArrayU8FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + // Cast intrinsic for `Ref(String) -> Externref`. + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + }, + }; + return { + __proto__: null, + "./apiel_wasm_bg.js": import0, + }; +} + +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} + +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} + +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +const cachedTextEncoder = new TextEncoder(); + +if (!('encodeInto' in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; + }; +} + +let WASM_VECTOR_LEN = 0; + +let wasmModule, wasm; +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + wasmModule = module; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + const validResponse = module.ok && expectedResponseType(module.type); + + if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { throw e; } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + } else { + return instance; + } + } + + function expectedResponseType(type) { + switch (type) { + case 'basic': case 'cors': case 'default': return true; + } + return false; + } +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (module !== undefined) { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + const instance = new WebAssembly.Instance(module, imports); + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (module_or_path !== undefined) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (module_or_path === undefined) { + module_or_path = new URL('apiel_wasm_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync, __wbg_init as default }; diff --git a/docs/pkg/apiel_wasm_bg.wasm b/docs/pkg/apiel_wasm_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d12b04e96ccea1af6495bf314e8995c47b216b20 GIT binary patch literal 1812214 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

Hp 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

IFQvpsbA1^$w4yGq0L0F*MQHVLH34wgJY`pQ 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 OFgFdoHVDr{rVA3SF$kNvwE*8fz)wV2}JF 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

VCmO6lcw|?_IE{HKR z($1m?Pxr3;pZGpqo+*GX+@wsvbWf{j=KIG!;5bnIo}+_hNt%PjHW>|h`MxZSnz<*u zlLq0&yf_>`NNWX{w{o)(sti4cn3XFz-Y!mr445^3>LK~1@g*d`0j5lO(v0-kYWxg^ zV5Gs4)qkEJcoxn0x~~W5sTum zlj;oaqj_Yg3RM9O(s@9B;(0)0Gj(i8L@c}VZg-mlpXWKz2CO&|_1(J5#fmmd-$&n?zy2&AT;421e5^KUP ztwexPHgYjD5EO%H-W7ayKWz|iw&>dTkefjNY9fQ<7qBSvD(W%fbkJE_#2dv>olA>2 z6mP_s0h!`3P=HzK>NXzrn>8;mNuuHfAbeUPcYrIuk(FO#c@AVO}!-!C-m zAud&S*MwUrNWK=8w8W~{N)?gt>i-XhT9Y8ZMOO7^ zt5rQ7R`vL|=&Eiy)Nj32eOtD7Ki) zEEPaaYLOT(`GgzL<~gP)RMD$kR26yJeRuNWgZfMaQVXtU;tcqnv^< zsxFc}njwx7RnWGaJHs3ypL|5ZbY#|Xo)EL%M%S;DPBe?HUeMV(5;dOP@8v=iaVIH> z((vkt(!7b%#t-%*T((dx54|OZ9u*cE8H;KsB@an-%hi4BD9=!-j?nej6h+eYkMMz& za@>X^en?7li7G+gF7;=!98s_fNs1prAxi;NDZwq=6vUYtuvMflf)czX*{fwra6S%7 zaE6pL;N+smr%DpNMw9zbui)SB3jV)f=Y^=Z7i_9Zy}(te7q}|*0#~J8V5(G2Cn6A< zQd6Y%W|cHWYHx>nRKX5rX;VZ27n6b;{kKza zBWDZ^r^jX3Kq9W;Qr_~?Lc7dte^RfHUfKEh1(V6hg^;jEzUx)Wr+!?%bjn_r~oB5)lp@{EOX-?;f^v92%1mb%@&03+?gB83f_m#Kt z)4flc;Al?%jLQOeLkr-fS{VwyR2lKQvGeA3J}tCIcn<|_D1_}LO%iKD2hrt=&=LSxWYgB7O_FrB zyfTO2sPi~`{ay}gaP@`x04~aikBQxaIRc>FcLZKUdsYes?M9IUJW71`+RX!4v!xTt z<+{=1d!F`cOy*dHS0{D}i+R-d*VN5glmyw;hd=!&`w1^JB$ldt|%Qcyf8&}+Lvu8lt)Kd zfZ&Vih9G<~-D`v)A-e~oHlRI34b_r;Y2654#%{3xLoj=5*X?ZvSC#2KYaNa_i@pSq z;L`L~nK2u!7wy^6&H!-f_7uU5(-Q1?)LEJaMViBrU8XQ6^N!ObeN)V6lNGcorixS? z?E4x+tpXrFy^&vMb*P*zsl6N(ww(_qnqgG$32|IzZ)EsqVz{I^5z8equ?fRvVR168 z{U)5%2+DC^gO1Y^8&gf?>sb};lP*W=Go-5x0ZkvbuJ@~FRoDAb5fso622qd*o9tC= zDRytNE{QuReSMBXVfn;Pf@E#GU^gZ zMhzm#s5c}TwS`JPF&*I_COBgXh5F31M(kLd1rx%M0m9sKc?hwn<}5s)mt%eLyMa{< z*QEnP9!QGyqsVUFhF1Y^iuGz~A7JfvSFA?dDe?`##MOady5Ef(jS&Lx80gzNMu;W1 zaf9bO|205YIHJrOOOx<}1xSXqz7wg^u=>ro_;%mlqH*@xbZNJUvH1{tMJ*LyhEIt0 z?e5egF(1@@VcnH_RR!FNY zEcZ?$pmsRSpqOQ67RopL+$yWXD(K)h`Up{Rzkq<~6`BzOT68}VE_@O;9;$BRH+6kL zy}nS4z}yaL`VG&o`&_mK^G| zMA-UzE&01^@3You^u-@ZosU9=ORa_(e|Q4BDl6=_7@{k5uqPWEBR5t8p2Fi?aeIL# zyZc__A6L)s=bAEc^bLQ#)$?tkG+S$%zqQ6&!Q<Ww_CH+Po*s2`z~SSN1^ zE7ZEP^jTiHp!^N}h?U^Y0cq|J;XU7RzdPZc+wMiAbt6ulf(E*eB}qjGv;cBc4MD`! zip}nR#;v)@_<4@Y1 z+(e<>$z%zJ&>X7HDUc3PI9owkG=MQgNs;5d818dBe-OsnuD$%BB5ucEtgd2kB}9x&z|O%Z#B zAc=9sK8X1vLEsu;yNSl`}6h=5l4q6KmgqN^L$w}-UAoQHF3olyW0=Ide zV&7hFhHhDkp+vC+RpsMiP6($g$a-@iYjHvT-%2iW z3F5G*$x!$OBQFu_uj3GWs41^*dsLZkZJzQP_d`Vg-J0PI`YXwsOO4>qm6 zB)Wyacp+QEqm)K201)B(7HIyi*b=k5k^yYvNr(Bd} zXWY0-*0aRTmJ{|C^xNLzKsB(k0O_`tB%x6)AO@WE+k1GoeFa^Cri*-+kW?f$V%@+M z?4^*O-R?XZ>JX{XoieaD%={uh5Y~PCz>xHe2yrIoX2R@*wsU+zJv;t z24DPT$8Ni_n|K9PQ_}3yfbn(4GYW$Uy*Rh7Z{CfVs_~;T)lau$rwdksfjaF6U@ zwiF}hR(;-I4*m={c&5#1xp6<~6*4?%Fbi%MO7y8lyry^^4Kqio1A+uD;1j>()_urL zMp+SLeF;+}zvgJ3b#5tKJ%m_3fo$~_zO+B8)lb{93Z^rfRNdV6!3BK0bO3`54@z3V zzVa5O^vC#5^`%PyfSN1n*|rQ%R1>Q`|Z4zX)c^l48uHTTPs_~LNt*!S{~4bUzY5*JaBSPIjzHt8}I>U17nW5o~5ZhB$izzDc+3y zdRZ6YP1Do5*sYotGOsjN!HaZHl(YpU47TXJ!?El~p|@mj@=x$g9WL|$1S1rdC}r6^ zr&m~h6-*c3Ig1L*yMp>6Xub-`RzvYIm=ACU_8fpp=u*6oSxqFHR(ImI;3vSNf^*~| zrcB0?U52Jvo^oLG%#?FQ4ZF4c8DB-SfJ)7jZKZ-SbYhN2Ns1l})-Rn0|W0lrg`G5iER4XdQY<{-SPr1NQygL{YAP4OM~S3iNV)@k(hg zTgS@m`2+&77hlAo(9)=;>SNMajSS4ThfYxsv$Xz?RN?1;%B;M(Rv{jt@#(C0{QmzE z0vm*TlqcfTpRnC;C~l}i%P^5CqD&jUY=Q8K9#Ez)jMM#(lfzMG z^iIEkV8+)LG}9?k4XpD;@f-NSsy2mEVSgwr2Kz%Hjo28v(3EY$Wv13hukesItjO(O zTQxqC541p#`<0NxN93rc9tDfwb22*b)46Evh>gNvhSZnEVTl7V#$|9?=* z&YkI<;;_EHyXd#VTW(!HQ7qWjytlA>L2Jrm9cUE>74?A+vUY?L01I$1r|r!AX&PtX ztgbX(qbo8H(B6G&KMEq9cjR`dQJF7H!BI}qC0H_rM=6=IqsQLaYrXS^{`BR&<1ZG2 z3cL#{xzQ$cnRkej6Y>RBz_j5H_SD3+)YXCkGeG9^o^A&cyNSJMX|AKoA(>SHuHJye zlcK7rPKi&6WiZnY&*;iB2icem5SmM}%{7rZk|bUXI04)+^m!uJ?5|3r5mGy)Ym{VAeL~`Yaky^ z*FZAkqAdAQXpN@6kOGUA4AtW{<9L$JFh1P_o+~60X<^1)*D`t23%Sp-O)1#h=B(v& zuCtTeEvaL#AjHvgjk1inj^AmnId;kZWDZY8^kGl;{f`RC*2{)w9;yG!LP(l&xP|Cr z*4dO{!>34b!Dv^N(W#&SP=1Nq? zfG}ptGeS#&em^Xiwm6s4>*cGt&r_E`mfFHMPG7Z0sDnr|snEdlPIzY)+DS7hBJ8kL zyiGlVaezFBP3Wt{IJ3;$E(QS*MN~!zWFvwzr;EevlHBY?-Tz%E?DCVJ`oLf?NsJ^T zf7~-|g=-&CsNo)+B_R2`|8|w{*^Ah4qVWZ8oUI{;41$jY1R$pvhDuk;+@;z4?S`e2 z-G!clMZ_F{YE-ABt=jY9AVV@7 z3a~Y5ifx*uAg6{1RXSK^gR?&{gnrAM@LPU`N*XT^b2eADfE?xO z2fhG+#A?NKr?aXJk$OkXEK{-xWq32|b&R?1(l71a6@Fd0qR9{k&U{3QrRQBy2iIN5 zSTd{C_+u1h+6?`cZXrRd5vDoZLQ+IL&rme-P&;fv6*w>6Lh`&U{0|D5ygBor{SkMp z2~tlc@Rk@BHy)L?GlVfQNYx+e3f>e_a^l3PVMApfo09YH(AT^I_-f6QU%?>o0!q+HR6C5VVjfS(AOI%YH^#|f-X8iJorDr>1%_X=gC(?E zxC`D4c6qvBscw1VVGccgm-VQ;OX)B3$CMZV>~2$H+?sR!wR|?|Ifspn7b(Pxj#0SA_zJPczq6%-~3~y=vGOzgVne1_}8lBQbbrn42e^61=;G^KSdFAqpC}O9G$>xda@qkK7Ynm&+x-`eHLmFS|^OWz7)k5u{Wx4ruT&snP3t5dtV(z5H@`I(2e2g z57_|ef-7hBFgk)?x}RYW$A9AXy4($)A)1ry(LE1Pp$B0qTS^wP^<78+{8@b4_qQzM z1Uk-3TD$wOCYS%<&nmqb(%s(%ZRkV=e~4a2=?~e)sf8jC0}H-jzKv_mv-_TtYw?=*LB6GVj8qvqMtUyvxjVAYgI{g*dE-~kp+5IU_qjRG8^3lA z^|=_?=jB@)^Sq>tb7gPr9ogqqO{*CG^5pNm7umdAIhW@7qLF=GZuWWUTwBfaSm+fX*-YBZLZqD=4 zxiruH(S2^t^U}FA&pSr;dA$jPYY_&~dQH3vMee};KqPaQ%kO(F66qU$fO=KdKhOjC%+rfiy&cM<}sJejHIJ=s-= z_pi~TUT_~C72{te-9RkI+lM~6l8L%ZBaPDel)kRs^aIvEemCo@xe$3@bM>|L*!uc! zM|HIt%D)}e(?62_h*=FsK+(2j3n-e(+kR8Gu<3;7oxi1&hbvl_S;oQ@S*Dcb_{dAi zx{o(+vCN)lDzcD;E3!-vS9H?^nHH|dYWHwO17%vcBFjYQD60o5OR7GuG6E@4`EyB0 z?R4kcEQp@A^ z?21+IN$4VqIjI5JURs;m@_Z5t z?EZRK0?>>UeRh!%6-%GS0~Qo=vSZyhn1Z$(tZp|XS%^6W$sp{ z?94^=agjb|hQh}(H)+23xXPTi%$8e0e=XYhvjt`c*BjTr;>QSfVLI8WD4z{aVewLn zjN@vRpgxpkwe=!9ki;Y$rG|pJH`@g-$iyPOE?!dLH2oGnlho#B6s?qb7uveeMSmTH zVJ~*x8s-k@lUaGB;rMX{wk^#vED!-na}-o|Vw9y!vFrNTJ?yk;E~!QtO7B^&+dr9H zSb`PV?166^>LQb;T_fjNrVpaQr?RD-H1wY!(=Y^D=(&2m1Qa^j_IeZAk3uTKR0{}QKUP6 zSVg<@UaRT+NJ+K!;s?T}4^*B@INlq{`~B|=6$jte+9&{jJe}gndXRPtg!rP8YJ) zVaIW@v0)9-CSmG==aW2=SR>7CVROqj)BRv=o#XxFnMA>^Sb&ojTgu?MBTzW~nTY-V zV&^}O;QfB-j$OcSUh)g?2PlvhpUSr2#Pc3N`M2!?x=C(p!(P-Fd-yY&hO81%}W{t7P`quF_9Zhlmuv*azxVrz>B>f(WU z%k6MOPX`HDDF8>FeF4$KXI^P5Z7hRWBH=fF-PGGYYW0;reXQJD_Q-D?>lb^>VXa)v zUIZmC_DIm`ek|9`SWBP5;s3kKRenr)U#@w^;GvN5tFy&UH@&hUW^6;iMDf4uYC48E zH);1`Nt|OAS!`Tn_!UO2=wqQsE<)h_9Zno^&=V5pXr*<2fqT~$a+e$Aoi)Q`_h%VM zk3Tr#9PJefGcd~zF6_+3yC4*l=#DmiImAIvxML+u5nPpyUQCPPaA_s>+lBMJh)qJS z9b6Ep%vxGo;U&!zJS<-xE&V#x^7>;7IcN>0OBAN12sr19J#3YihKMvW?#9x^RJt#f z_EITFV8gdiC)?UBRz7|U6$z#AL80`p#lqs&ynb#dbHbdFQfEee0zJb^P@|c!PZX+- zCvMf75CVl=Vr*RX1^w+!x-UPcZy|y{VCbJZ3-(;3T z=_a#unx5G#ft*eqGTc~kriF!oo@QY~=_XwcrJHm)l#ZIr%@+1FpKQLcU@xKx99bZ6 zzXpp?O+Y9-7RljIU&8hmA!dppO*j}uW9RL>yg9w_50Rl!7wD)uQc}174A*QV*JYWH} zY>$iW3(wSKf-)#7xmmJsJ3^1ZMj^I?uGlnZrpVU~+WCwGg@Y!m!XVo8*y%H+??R|x za>KZg3}z*KvEwBE%6W>74L?d^7X)gNUtZnkKlrC;x(JRX0zh%kUffM;KX1UZ$~9Yj zt~fE821i0Zj+jT^fz0ma z5}xI5E>XE35uED=t=^Pw-$LY!Z`!R~Q+6wt-ha7JwAc|{%B2@u_F}ubk1IcrwR9hs zedF)6k91%m@}pwK+vTiW6{k5&riX#z3SLyom3`2)B&?Pm2Iv;?IcI&C4d_{KMsAE? z@^E|SM6aVVar7{2w%PTQ$yv!Ri?x+{7rw^!L?tY!sEAA5hJdY7#SRl|kS_jY?E;S< z{Cd!-FsD%B+9g?8>u@4Akr`=cd8+_eRU17Ky?1_r2hEhTxf(<5jog?HeSxJ!FEyCox1Q7`XuC) ze5ni}uQ1L`4g0n?afr!kl?JBlP9|E%dv>!Sc^fT&RUodAU7!Y8x9g6;f@pN#sU>64 zp!?=jN0oB2`wp@@zn2d)cBYrPTzJa#QgsK+{-N(u*XhXCGk9J}hCdBmyh8=Lb z)&_*FDyOgO{*dw9>}oh|i!MPuHi3~*Mjn|e@BE$M8^4sNusG5(WMx(k3NFGWCD?!@ zWW`}HgW(wTXl0jP>WHMyNg`pIvh4Nl{C0W%YMuDtQ--F)Pqu+|Dv!xU71U#X8I<+{ z--#KOD!~zEx%?Z!3;(TEkJ`pdf)XA?K+(mPX`YyYG*3252A7&8kSUi$({BqUG}*li zbr3_g31hDbkcA;^!X}t4qh!3nw|v5aakp@}5vNCs;JXogtnX|wi6sy~nreALK$9@0A#Bwg6P^j^>Mgu0oB{Ivgzm$h)V- zmGTk?r(MuF^(6uDt$vH0^bMQ82ewM};aR(BeO!G=eI3-eiki#}SSP)we&{M(C&w;E z%{FDBZ5ci_<~C`}kcrbmW*`Ug9=1ssgzYlQ-Q`@H&Vqe`0nP(jZ8OFUJxtqiEsr2; z2gK}D1F2tmUU9LDTpQWZ{zck^2eLchfS`_=F~O!Z))w0dn6y){@F3HIC_5}fXas?j zPNMnIYNL$%oIvjKA9yF>#6^GFtHBK>ELI#yZ?{yvzUuIewhiDbZPDTO0l*7-?JC+4 zNunKHz>Gjq;lx-%daL_u6O3hb30{!fEpiR_C=6 zF)q;Znrsl$)V$2&#gdQYdo&i!S&zEum{_w_eK*u4+7NV|fDbucLJaiyX7 zT_%&))G0DWiwq4-_fUJxGU|n0>}a+MrqLq{ofasSZ+PM}!>qAB05Kdv((nM1uE`7Z zn?`#yH^Jd9ea_U26<|_8;5^y6C+{g|2%O7c>l*m#OpCJ`3g^YB(EaJSG`vcB!=~3w zbB6hQIvqK0HA74s(<80u;&$!#eW%$StQRLt>6}go@^CM@K%Fe;3)7aZqdVF~d!m(h z=ALR(c`0W@z2lelnLOwU#(%YRkkI_E&}q#p=67g@%e6NF4L1w8e3~}zLoCsY(?70V zcV4!$OYFJ!#N^cU%xq_Feg|jcxhVb0`HSW*1`My5e;Sj_ZJg>fC;GB-mX7Xu`qT5L zD_Y28`N%H^#!6qkaQ>88?T%`+W&TqXoF87wIKg+`sV|Y+jTPVS6`wc9VtV6m^_;G%XPS3<8*^0~ zdMuE8im zl8P^hf>iknh4ENK1){WA@FOa{3nds+++H}3J%_}3w7`!cTUb7nlD~( z^lP(flWTf|Ruk(p(Zc$LH|$s+M6O#<*&LI$gleU{`xgO7yPH7!;@-5>dV2TJ)5Gb> zHp{E3oe5CD_rT_ei*nLrn^%Hc0#KDTq~gNDA4Q8%`I z!A5?Rj9zv%4@k`@rhB>GApVXx(iwf;+j%t;paEXmYbTnsQ&b$9V-RIDN6ha`Ij=3| zu(Ds@0FnA>?g(9LPW>*5&%_-;e=0s;f{D;no!8sR@4_xReOmHg9M+&Ud30o=xAR5w zdjT3(P-&yG+r=k^rKV3WrfU^r@Vv+vSR{mNOvPZE`6V^R;3*ml?Wkk4HG(k+Z!{T$ z7mG1?s=mIaH&bT}USf>FONJMD_$ln4N5LBOZJB;dtbt*x9~WzYzT+xZk)~h9N!wS< zFS2GkpFe*|ZKFBh5-Vnkavd|g`LJJOkFv@XHLAp z74sL_=8Krz_y=;uKWI}L<8aZ%7iW-tBXCbM;)8xO(pIW+R$-Xga8_aNd#w#8zL7sr ztKACP7sM4T#dscxNwPtETz3Jw`nQgk{{ zn4iLyd7*%E)(MG7_nhIa z{`qR7LAq^2+cu`%K)R(itds7%M!NGzy3bFf`zh=-Bi&C;q&vKo_nulN(mms(dq$+2 zYv@mdolWtszhDdi{mguv{1T$@`X_MPT)Gn}@rcnAm z8*fFr;Q`p3Q(D3V5>Cm}BXmZrLZZ3OtwM8C4uF7ycvWJG=>XWCSEKhxHH;+XY<`jQ z^wLOD4u*G9{*)RiS9oC!%VEt#|U~G z-WW-5FVxqMj@~|c8hg>Bp|L$y2O7H|8f*MSlg2s(0(zsUYCTUIBFN$w?AVzN3FEu9 z8x!%oaQE&E+0lsSE&~h^Pm>-E;a|YZ23j>qJ>R|i!rh&@{SJ+yn-|OhD-~!ClT0hD zQNQQUpFelurmtV&r3plP*_HE2=1kPmWKIc?iCP9p69_-A>Ivyok*K#3yVOq+*81Q~ z{5DMEdQ!P<@lg^@6U8;r)LRb}*F?-z@fGv4b51H>$U>$bu&NRd{KG(Or{|E3JSPxa z!;7jaGCd~a*ka&CQYlU9#bTBMQsyU6-}c$3zPO+|^~LK$TTIk<(pnx7{Kl6rX_xos!DxFsOJL77AB=kWwE1?fzP3U2tECu2@$$vOoWoy_hb_xwAKMP@iQhu--06GlR|_r6(k}g zADG={S8HfVrENuTke4foHo1*b$6F+MUDHPr~+L{fr4V6QZGeKWLb;PDqczoiFZ-?KOFP-KMReS z<(t6uvY3DHS;fmd|DfLgv6z49vx*<{{7aSp<1zm-vnQ+mU`T!m%HXHT=8bi`_q3~y z^!dxdIA){khVLC{q0wv-i(WHh3Ub_g$~%7{(D3r1B@Utdc~&ml%;~mtJb7yKDC&Cq zEs^4PrG4FnLbMCJYS4fjKtfmbG!@W{~~;w z8PetK-Jj<20&FkfH}4LzcIidCywn|Jv&%E>YZxaF-)+uZ_M{`8JTa9jqdtz4KPUSh ze)k^HN6OikQu_mw%Z5i*dUke@p2(rAr_i2+k1KBQd6RpTlr5*mj?1dpaou|CxGuXm zb7c{q5~5Onb}z@+aTYo5^6X!;jtUjmZ(olNr2VgdN{S3Nfi86L0l0f7+tkf)F;bj| ziL}dP3bd-qoG4_7khpc#?nMd6i-904vD_}dLmlYg^ zI-4gizxtQJ^)B7{#|F#G*MEk`r|1zZ&d!xW6?CcG^UC+=M;jbRm}Syj!KPWX*YG|s z@3xPt*N}ALYiPL$aj)_&m220Ud*7|qZdK1!GpnSS(biqiH;0*6I)RcjWo#4)lx*nz zDGZ{b1IlR^s|j8zdO5e3^#k~U%`NhwO@<-=_^RPQ??_KEC3&-o8vXjJXYA3kCHFce zuP*}>7KInFoq%VO4`n}zzvx5RwMQK~uX|?p*Wdh+=Va2z7s9Gw#y#471rsmVkaGTr z%%b^q2eQw9^GDF?X=?P3?MxZY9h&2#-H)h0HcRwnGWa#?ET*$h3{417wl13!o%JKp zwm}Qxxj#uSg8;M{CgqFIk-FrTj3d7qq)#oM2)&hsO7z)v92t@)oLkO$ zF(WgFX@D)|eFZn?4V=re$plJalynh!m+- zGuEr}8Fplb>2dnB41HRdWLBdsxkm(KSs5nE-@kE{Zm~CUUpB{&8+!S_JJ!!sOV6~x z>`%dqqqtV*mu!-$nHDeOuyyH&jBHe z<%4WFB{{V&li6 z;C@yW5vJdkn(e|2i$3w|`~PmLUTbyO7-u-FhkIsMJ6@+&;{~RoPeu7Z@EP};qU8C; z$z{ih~oBdt9 zQ(lKl|HNj1u@kx-D1A47EEexC_(G}^>{j`jFkQle3KvVJqs*Nev%%8-ej%FzFD(j| zhLI)b4s$~qfTTs1bxc`*Pke@BNbZ8DMSd^J6#4yjR`UiS?cskmMXZQU!i#4U6z?dC z7SrX)R-3y7l*DaNZUY(zk6c#LmNg|8fiL*;qw_7JQ1%RAf7g%VEhv~%2B+zjVaHCC z79%zNukg^k9E>2G!i^A-?pu`L8&ojdQ$0P|y)`T{+}qdX8U5mvNA11=aFTCrww0De z9{6?GDn;EnjBR2!6j5ry(@vV6g$!eN60jad|ruH&(EL?>+o2;~yTag7sp zFU-O@@1L)*2DHeIO{s&>#qY3fEh2=|{CTqH(WIbJJaqTLyf`f9*!ez>cJiIMQup*K zuCJwSYx49Gr+7f=-0NWny&-8B6?p;H$eQ5`rp~#B<3bYOmX%DFuox8x2?5sXI*S2; zc#%4xgF%JIL4jcVnW9z_+w2NyoqvP82THkOUeVq1mtMO{wKP`V|5co2&J z$qy}`nQiRJZFZbQvf{{|n8ao?Z}NZz3Gz8GN^OpL;+VRh0zol1%on_jd|*AuI+f}I zUCuO$sj|JIts~ingIf}U3hfsY?EG0XB>X-{hit|50JxN2U;C(sEBY02nx-6I&`!`x z{g%21|0wGEk>pgBU znbv+`iL?PXny>Zsf;JHmm|mNwBVa}dfq^G-jz!l93g(z;x<>h|dj? z1I)o*mV}D(CH930;>HEN+PvM}`5t+`X^Puoh&{NzxLg4ZScrLz3^6s#>2gAv5mF26 zaOXx}E|FOauc7tG3?DL^LoByJe+bGUh)Z3R4XFEz#zllnX~h$ z(6g!w2uHSxr!qY>@L4${sGI5n3APR0bd;ps<@3OZ!+A$>`Zx@-#F~S`gaST;qpD^( zh6d@pCeK7L_0NwQJ9j2@m9cFlOPbR;--e8meOywtV#{CrtzTyPHV8Be4@TVUhW1 zRV}Vnk*kos)%}Nfqzf<8P2WSw6pnt?BVL5cU_Gs}uw^^fYhIdrCvAWAXn}<}OAxBP zTnEs9cZxEkFWRL|A}BJCRpS$&qw@dbc@24m?z5O-uv5>iiK zn2Vk=T0~vWbjs5_tO9<%3Ez~M2`gysB&fAfhGPuJUJe!X3|%uf3Umf(&Lp|SX)Qk8j(Gb|l_;=q;T3^%*q}BPmU(0ilYmuJHyH&2|S1@jHM)m?=6DnP1 z3(N-nHeGqTBC!NF)b2;rn^JeTjECt6av%!gMqB^`pp?!!R0so|1+mexv(8T>vy80( z1EkGtA!{9GAn50I@_M=RSa}cpxI}h&ds6$+1&|NoED;6~&PqQo0q0cyiTHL+0^cHm z@v>=*11);At=)fCS`(ULy0J;^&mQ`xm-WHM*)f=D7lK=a2{4J51ulr2P(F~oVgXiA z`-FQ!iC@ruWg2$by^hSC#|~uo-1xF`_jRwp=$7mCcIVkFHLI+^5sX^g-%sX~H;`^w zP>P+eM(dWxNkQlh;cbrC!5u~WD?r_ zE-RCuHo`P@om~s+ebIgr^T`Gger=LZE)N~*N?v$q{jIkJD74Se$-0a7bLLC&Y z17CfINA4hCXieqKs+m3P_DSEv2LVB~DM?s?f)%pm+9?;!YUd-tNcMdABx}z`ne=qJVf|s zQqRo3?>X5ID0Lvav_JLi4DSF&pC9v>&?f+Y=`eAHB$i1CjdLJ-fkX_c-0r8mz-p9w zR<2pj1GOC0frhopQTx{%62=hjmat0rs_Eh|36LhCnX~d6rjIW86#|(KSxnV*_jy8a zhs&O`J~AW`o+PXtaW~Ep)rPapfayn@0Y#-Go1%Qbb$W{PYiKGNYj!B(%aTJ);0>E8s+cOz(=!Se zmFwBo{HfttQX`#ksWB#cU{WvwjnDdQeY`{io0Xekw~ zG>evF5gYcPjPUQA&8I>rsx5$&C5h*wAVqIJ$M*$*v)uJ2PSKo^mb7=fS*Pnt477YG25qG7vK(;CJ;;TKJ9)EX9OwQ9gt zSOqNzQ8nnpM|q`!HR}zqCjS}0*I}8~t{ocYL~L!f*4jyH?dw@YBSrZo%lT%a>sI;8 z4;3%-q5jNsvY+sw5{~HE*|lk?_yUzn=xOcdb}=4zn(|PiUdmw#6oLeZV_ms)*N44c z>&S6FZIyTA)gT9!b6YKkZt~7ssvNEEEr=yA2WCJr;5V=$Auf<;GEO@=$(fD2PuMRa zomN0P#=Lz)>V3?=&*K1Ycm*urNT`7r(6yW9GyrnKK_Vp%=&_uQXo$d{4F}By926U$ z0tZc51K&Vgt6HWfpugBMXJ0t4(wj4!;OJ&Lpqm+?8;eKh=w(LeX1YQ*#9G#KL^sw( zf4b3&8G11jdr|L_c%E54?$1f}7*G~Dkhyts&WlSmD}=s-oSBr#HP#Ig@#wxQfiP=D=`((<=e-M#h9_E0rgpDEOuza zZzEr^`rf$zYl8_;PNZEp=louLi-;m3dC`Y>QgNp^3&gzjr;PCU> z8A3cSYJR2^1>Dkv&&68uZJqX5gy6s_o>)Re0jr$iZMn41ze2xt>c zKzsR_>u}0fhr=K-DiNu%-K-!BCUJ<{ro!-!cmdj^S2O%K)fple#CX=d2bkStq-9JZ z68JcYND%r&%s7&=h{SaHOd}GC3v1NbB!rG=R(ys!D?)2}W~w@3)2&>t8I0Jpr4``_ zoflD&%9HgmwtUVBiS9+waiitGYCzA%=MsoCiw4RNU_}u5&8e*fku`+WsmT2J-l1V# zGa)!(|0Xyw#>n7g3SQc_T!53Qa*v)9oDi+m;6#`2AXWk=Pg6>8GV|X0cYsX&n@l!*?Cq_c%tK+!A!HBc<-pja3v&PHv&DW+xzA;Wo2;>mO(U%9=7 zgrcg#`0-P>P8j1SB`RD&5|COA#?Q94UAjOjFn*-O_@M@r&!uZT1LJ2}z>4u}H5k8E zgYk=i(-UiA`qTqT1$`>#3q$RZ@iS|Mni^rP5Mx+p{A73_qhkDm>7-)(to4fVL*psN zuPqJ_9>nCJ8Q89w@~{8mV{e#z7UFqS){z^{7c=(ism27Xf#RL833@lx2CIMl4ZVj)rYr9E6lk3^ICy@Z9hDbmvT5A@q#-a!) zpMP>lfTYY*4b=Z!Nx&us>$6J&f+|b_mZ!_sk@6#Ndaurthz?AbAF3Wk5QXVdACDpm zXtP8Vh{mbo9;Vwu-?&vop{d&nL?M`%6H!q~!HO*Up?zQUrMhW$0m`Hegp2CQ{# z%)0YH<9=)Yob3Ph_Lp<9zSpG={1{bX^p*uYR|oE-e5AF%)&X_6DA$rnyH&~%&RW)T zWC$rjKHgS}r3R-1b|j(D}!;O$n~L$wkAj^%t|c*GAd;$>NA z8S-B<EsCP+5p0jKIM~9E- zl+6F;SOxVH5!_TH`iL2j&XWDVB}hY8%zY~>!a+vrmbDu#wU$y#sdP1^)>CSb-dl;O ze?F9M^^+C)+kQ&7{6N+E_EEZx+L*VM(k*?e8t(Q}x|Le%PYR`5s;&06P`dTnh|dK| zH>gd(n9@0oiDJ^2(hWNle{_o|-I|b}(YIAWhov@BY9*Dfr_>;oE~nI5Ohrn!+Sy8( zZh2Uyqfz`89)mo${udSE-F_-JSg%??3seqSLXN`~XP-p4r3b5q?l#G#F2a4-a!wWD zdf_a}AdNl7d zLyvZ3Y7-;mwrHS8Zlm;5t$(jb5r%h$>vtgE; z7;TnpYM|GpaJJ1HoROE3270Yow491on?)qkIQ zhS~22&7!rxi$xns)xm2$7DYfgx7qsT8e_fvZ2jt|!#u*|Z7Ey7RvYHFv-KOb#{a9ObI=e)FYuNe~0iPl0fi|P1ma0@LT}`R=n2H#D%<7C;oh@Z` zp0eGn&IcnTL{>)`&gwLa)=tEt4W))yomdnBih6OG7F5D{a8QUC-6*PuKFKroq>AR^e~gC7d9E1Cfik~(p%X09*> zCj~%I>;tMuC$*xiyy)6IWaaO3ZJx=>mnLoAK0cDgE&4=k5&&VPHbA_Q_^3L#VIP~=k07eo5wD)2~c22NV*@2;F(%5}@RvzCK~ntJc3 zax??C;SjS{(>9&*WU>%~p3vXI6>TP%<`Xgl_uVu9$uFTOq_ zVu8&2S%?kOrO)6CB(i6$!g@-r2}L*~F5tA(YAW4GsipMZN=mKAROB?qEcuuv4`^;A zLIGC*I_`t_xPp<{5ufdh8S<_O6ES9pGK?i(ZWe9a6^oXdMT7WN1e9^qzA>O|DWH79 zNXRxq%HYclNZCkw`t_!sekB#HHH%hb(HK(3N3A8}Z+U#n4{SH2EN?U*Wl0&X=4lqK zeJK`gC^e+!iA51o#?054rfexqxpZjE*b*-<#w_84f7TqNP-{ z(kxnzMG;W`bY?4q8xAn9B|Ua=m`2g6)&m>PD5kiX)ar+y(~;}-6yz<0a!v=nrxY5r zcHrB>0$ONLQXw>`8CAME_`H{(gnsZ@aR>={NV{k?Wn!zho7~n1e;g(k4xS5dYZPg! z{9ZjL6PvY*JL)83VprPgpXp9Pc0RQUljKUF6M ztZfc^U*>Id*!v1^+YWm_FSUIsGw){w;&flju+7FZJru%yz1BL8?tFw#d{TeAo6(?_ z<3>O%aq%5lI9`6J^@8FsP0HyObCqlonsqE)!C{}n0vP$U0vP$8KTklMRW&U6fcbWR zqUyBwlni@(Um4kK+&b<3av!)(d;g4&d^y);gV*c9&beRP%M^2*ps1St7$$Ps!bB3W zl@N?)3=^pX!jQ{am`DsYiq1r2)1fet7O<)CFp;FUFifOQ2Mhl^t}u}^9ww4g*wW>* zNb)J3adu$FLmka{#MYT|zgi(wK|rOCD`IOiOl0UhQQScWjfkyNCEE*g0HMEw%5p7k z$#Ny`k#a4?g4{@{rC1sf+n56wa{yb)0X%)1Ie^taYH$E6$}kRKxmmOkrN(lpSu}`W zjR9q>qudr9r3rr9sLWsfuMI$1QicJ_pjosQZCm9=)9ke#iz1+m&0b@QvZWN|Z?{{S zzxsC#NLf*alayxB#^1)GrDo9}eib2Q%zKR?WlJIDf^Fu#mhWi*%91jiq%@1x-XDuL zlp3;n#i9r(=k__S!Dqrq%p(wqI%!{8_{;IUrQ!CLAF5h6H|KO)%i{{Shq7mr@C+-p zVQ%|5uC-d@u3$m`k(^w&Iy}QtZH`^)T8Zb=Jc(ED87w zL9eIOMwR-@Sh}3@R%0q+@cX8>@&;S!&uc+bX%zkWP;lU+Kd-ycC;jx^@;7RO+!Fk4hjE6Zq^83-OSMsM5&o7Q zeMos;k9Lzx7Av)mJV8`$Dsx5aRIr zhrOnqY4~MXt7EB^l((KzgIF4|%I{BaW!Ns=i(RwInX%@S!)|sppDc5JFE%%zisMUu z9>E@${5-#p8Y&6xq*mf14>}?$G;=oO~)hqdVOf~Mswy*6jBU0gBY*M;uf|Ci) z#k}Je{q3hqvZ~n?V>-oCziEP-{w8S2p|U!uW>-=1YIW5_yoRhgs%Gt1_hNIF12dpm zk+>dv*025R?8`KB{*M>9b% z^mNZ);r9&M!6)SA^h&BTL%xi4Qp0Mbuv!;_}L;q#3SpLpDpq;GWKj|i{e2b zF8{_*W#%@{Dsci}uJjWCT#sn>E1d*L*VsZSPKlsn=6pNMG9`rSm!J(!Mtl(LTpNEC zsAajXR9$LZNkwbTqSaUw5yx2bGS<9ospjSUZPvW3zP||#%5W8BvuNY)ShUnE8pN+6 zpp2FIV?fzbK>6S{F`J2`tV=;(ryFZYW53!gT1rJL&7$R46d`3yQpS+7rI7M3x0|H= zbpudVl;I?$S+pTO&5D+qMT7X&7*NKJ6q2^K{IJ*F?FN))aGsSIoTprF7HxbW0ZOxI z5WgA&${0|#1yJz3CSHd;zR}58K#v^gB&J9q1&T+lo|4>e3YPe62bW?@5#;_P)~7@- zD@Qx$|F;H3SyP6Qjn!t+QYu<$7A?o3F`$eAWm^Dc_jUuyhnj$*3a|)&#^&mgXR-Hf4{=V`>Wvh^cvXvIs>HRF zH%NKQF%^-@x$Oh9{@Dt!w;ic`u4;R0kxH$h?MEuL#-CiIQtQYVsfIB1FyEV{icQ@< zE9ciVhF0)&t9$T!fQI@7i}IE$$`KbV9!9xIqy)KrPJ1kBT;0MI?K73D8~#tbp5L42 z&#^0*|1-p+R*VPt4DDG+)lTDD^G$D=4L7-WYAi6ZmhC=uQ{>vM?NM=yBG+zpkIyJ_ zr>o%5YJ+eWo8RiL=*hZ&z2CtZEc$(sV*#M$9u}fo=nnVc=*dJ)7!CkU^kf1n^-TYa z$65#go#G`=dA#JI8)bX*&(7E)ii6G8E}x|ln~&P&!IL|#!d9<)@+Ui;s(RL=D7%*c zVHK8Aq|4=$T1%<*lv;_Yh-Jp)cubDBlpH^;2J72lv|0UdgB-6Y!&Pj}qK&9q)B2UaY8&Xver+y%bQ`Pk|h>P>#HXaXXr*<<8e~(q1 zn(CCxUu(eik}_PU(=6JEo2gt^Y6u&oqSaUwfq#5ZVJvrTsoZs9+sS0}$iYUsLSVgl zg}_QGT5A@q#-a!*V-3X^QnnOQ%=dE}4F>B?esV2c(zMzvT1rJL&7$R4GzOHh;I%D+ z*HgD!L(y~)-S}YS!q$}>yLpUZbMLV=iZb=m{iPnTac;il*jTuk@YVu0QB>YML^Xf^Jk z9eriZ&o{5EQHF{9tIeXNRJ778T8>2#hW_)^Rz?!rIMt0KYWarZi6t!`DmZER&XUI@ zyWJy(nK#5f;)S90I}481?%v`0!WwX-AZH&n72T=+8;W4#{u?i>`EOj4{5PKK;3-(0 zG*~^Os&Mra0h2PUlh$foRfvw58tbaU@0phQ-)HH#hi` z21Q$nOH^(sRVQ}qsc5ZPw491oVo?Oyv2JdxaoAFg!~3>dH@E(U24Jiy!--q7Xekw~ zG>evF(HK(3lGL_HQg?4Rq^v&NfRq(wxcgAEXd{9{xzsEg#IGWxjJ4QfnzE%dWzY7o zVU<@z^Ge%|dn2H%D^+L1R#MSgvuHIIjR9p$QnrPpbhjH&6uz(y4IA%EfTC2rXeAY` zHH%hbQ3RB+`w*h{**(+oXx)dt5*9Ei_v$)l^VhZsc1D8Mc^N^lVf&rOWDcq*=8!aezLLo*OcKJie}MLDq3k4 zEytoUpp4ncZDA)b+GapmZc0!~QGzN5&7!prM;O{rs!m(hV^IW@vC?}?QMQz#+_UYf zye~EO{E9MMmDeoV_?uX?)GQjruOg(3d9N{~T;i@2cKUs`A@8)gPK2vN?CLjNBcc?J z4B_m%xkjAcW#Rj_nWPM~`Rl}CeSR#gtAcdh%@>uEPXsI-&j8(SEsWS zG-4a|6CXBGxrGXfb?uNkSg*w`Q?53PHvTvwgOz5{a{6iziz4iw>~3ZBnvLNL6#cR; z|4Rpm@GcU$s=cCmw9HR^St=*>uAEpmK@B47V`f#x5!#*ZFJ>xoIv3FoNA+v__MRW|z; zM=6#1bKY7%9_1T((|OCezmy}WM(L3vM-Vt1-5Ae>MGW6flid+kS1vg2a%o*U$FB}m z+66`I2%=s3m&A~BT{LuAVh%`&TtQbnbDmPmF3i&>qhT`A`7VX6df~CDYXzH0?B&j; z)-@fnl|K{EDRz}V!>Pos{PPIy^xCz~G?7!;8(X=exZbnkq^GPWE%k&u^Tep=u+HKi zv7NT$x;yytv-n%?4nBJ2j&N$J*CWLdPD@J9EqdjK{dKnPF40AG3E=5?ry(8h)MkOt zk9SfSb8n2C{CFq3!Eu}%cQqi)n!x<(@lJ#obDot8TINnjf4q~vNV3zKRAG`i3)EiH z_Jgu>sOl;JlSzvnw0%e9hH#^XP&%P%h;xb=Lg|F6p>(2lLe-GpOPyr1!UAFNRX+Aw-*-AfI$Q;?A?GD9k&=xiB2QA3& z+QSi5AZUI`qQ6AJu0)K}g-}OWH946|OMrP2%8?qyqx1?r zUy-S#80W7I8aGNRPKKTqY40do7t=T_@D<>Dv zml{pfNN)3q(x>VlY#&<;5bkPw8$FFbw>Qjc zU@hmvou4a)i$P~7Eo?rKjzb5hFEKM1~0FSGPi6^ zm)gQ^#7BjdCra6+M^0hovC6UXJkO03E6)qvNPk)*{gHg6&*dwbO=x^TjbrI4!#KAw z9WAvk8`F@ELH3rOD3y(AsATD})@A8=scT-Ap8w?9pP>PnnKDqngb!usu{jo!VHxl^ zhRFw0l$2$&cjczGxl&(<3FI3r15y;tM#w%va#U_Vk8#U~>cgyF)^TMgQ(rVW4B28xv8d%elqI)Rc>MJK6aV3NXg3 zVLkE(<#SUbNCUknni@)j=Z;!Q&~0JH7^0>$?8Z{|LSDiMCU;hR%V-llkXB;s07I8X zbkx?6R9b99oix%uQ?=N|h(;r=Zf@OBNfTRyF~M6#*)VE#e!YdWtYiUEoAinuf8GXy zjyoV7*9-fmkd72KkcKw3jubYKhDJS7*g!_b8pde%IUMGkwO>{a7-_9D{;gJ`Z@pb+ zv|^VT(I+Fxn8wnSM!j8D8Y$gP?MmLl&xkfBbELEmiEg@m%uTnCxtab8eK*3n+gMRz z;Q&hei0lq#yKz>N5t$y$wv#=Z?I*j@5F-*}M%M;-Oit%GcOB(Qd7c2B?3kOj&W$$H zEnf__(giUnkDdS;!@Zsr=-E zNcPP*-JY*X;;eC+`@wYGD$ltejLQWiFtNtP-VX*(mrPXlgXQ-4={Ndw72re29Xc%_ zU#;ffsg6ilX*)!2`5#H`a*C?u-%eC%m1PU= zq*yqRov1P+EHv3-E>BJ6siRpcXO#a79Xph+@3F{_UDVKqp>p*BcAFk&iDJIK1#nIo zZgWGuXgV)CS}&T(iZ%#k!%(T!PfOrqDtZq*&V(}iftu)jR2eR0yI!;)G2M!$>qS%9 zR~exkddv^usu(I|l5xVf9m2)xYr?lgAY?TxJ7yfYY$@Ah#2v_=*dQJQS=t2L=UN!* z`bf+=a?2#xr(>xF5HC+h2%*Xhv{TdBd291Zl?~5xdC_dWXyHxSS4ZnbGx=B3SrK5m zEO8t;N8)(w!_dq|mx;to`4ZBvq*8A=ayO<$yE3V>A&HpaqSC2+C2`lxStW7T%vp7D zH;X&T1kJKJt54{;$$%0C%^+151^?bz<(v$R=wDpTRi{M{kZ6OjT&z(sWSz%5n@%1`>h-#VO#|A=- zn8I1GIX*qw!H+xautTkL9FbSL>8_y7O;U`bgddEaqD`AVJ0P!#vJ0-{E`nydP0zWD z0Ab5q1hVLH-W)E1tCfs_-?R1qut7Kjd?p6an|QyXMHx;i>%LtY{^*6 zq+!xdMx6C|MCuft0<6!vZbJ>Csq)iyUk}rH>Th+UytCG2PT3^TP!Uv^{wI4;8t%Cc z6Uh~HrLil*oSsH|dSeiBuQS`*oPOZ$@22)ndd*(7w>f?GUVA5A>YefY9cpQ~H`1ZK z>ENArwCqo}lMt@9hYK37pdxCeB!yj}q_(iWyMJJRxMwU5!l==bN!;DK7^U4kW21wy z|8HP8ZbVpvp9aJE&~FF=Y1AER4`*3_hef0l%ROGs9nEq-P|h98av#WYanp^HIf(Nhy~NlX1Q>erftzDIZk?~U zTFH3EP6v{44Do20A>R?K0JezlT)_{j>1NypiGsgNQ+>BG3cPH9mogwI7czBt>5vkX zExAR;^wa<=%q>D1Pl5B*ao&oVPu0Z3xliUYV7+KQFPf?s zEo4R60<_`6*l=NZG3>E%VU#bt1=NL9Wdfa}Ad{+0;LD!P{+apt`bkwrC?-|KX?{4@ zO#Nu@>Fj9lbgEu7mnlo>LS2uV&x$q(Wy9d`xELI`HTiM%_088$&Yx3;v&_|trt_ks z^`e=qC?k}+!|-l|gaB!w$DiR|s8ujbLNbu$dZ8&YWCeh=bMK%6EqJfJ%zN$0&Ntk9 z>D{~ar9No*${I;%m33@4N2~RUFp@?^un2|;-wj%#bp#K|^-7^BkV?YNpN}MQW0%C> z1Pu#uLD^D&(u03{GU&`Tv>;FNeyrx=(Ev$I?{q#g!mpwa)~&($U-{VT8vHL|LnA~H zF`e<|DgNsyek#2A9+&Je85*9vDN*NV01@I!FXjimj(I^EvMISX!gtBbN#mAh1n5+q zuZK1*xV~aLFrT-sjj5Yo6JA;`b4R)ZU2a%3=yn5xUObtOPxA5j-krfm?s=(@S=t2B zJ$bkBr*T&|0DM#wrk}lMK1k6E6Ta$9ro6hR^9l4=2hdfuapv;ccqQWyN^V6B=BFdA zN#N>y4)K``&el&GcTV1HP(VAfFck#Lh}S^sG_((dwg7h`VrQaWzZKPmp?;gd%b?g^ zGS0JvPvOy1$!@*8j-CynrNm+ZEW^ow?gZ(;of&YesJZZqP%5YyGbe`Bpn_n#2sPKz zSk$Mn`MfcrvW$ZIH1?mXBSSL;Fb$%mY%EY$Bh|JUuuZh&w%(wI@KVtET@(h#EA+C3 zP3iqm?`Mz0q+lM@La>p5Wz@HpA+}$>G(6A!jU#nA_HBsmK0{nfWBuTHI&W+Rc&??f zek0rGnb^9HtY2dX^O3D182iz{{dr@L0}UL`!MKid7WW~zhw_nOd=kM8_rb>h8-j}< zmuq841BQKb^xAzd7!8!QGk8`nOyk|~v}pGowm!18PNW9EgVOjh8Wb6^uLHvByaf{k zd}wN*7aC3Sy{MET_ePLT4NP|S4YpeUsY>XoEn8QOl?4@6cDc*zTF9Uu%`Nz)6(+qr z4_ixP{m5YY9c~?eTxf3Uv1qIx7-v@t#&yAvRm($bnY6GE(H;1UPx&P^au|Z$^Rk!J zeiVK@Z)^n$f0a>qZVQDx1ITg+(H5BrspR%;V+~BBF-F6nb10Uup(PiI8?lS^RJ4l` zt(1>^=knt_O&RBv7+-kXhYvKG=H?hi!c065CR*x?74Oq(BEGO*$F%lepxh@DcG>}6h+4N($H z{#>zeFmGvOR!HX~GCLs_-l_d{ci`(YpWlK~Wl!OJUX<@k_D-e~8`J2+_E$fRH?HR_ z?yF7J+-ve#RH`zIc~N~9H;B<}{c9q|GwVr=v)@4LD$mulGR$Cdv|com7i~=A<@40P zUe{@?GtTLpaUQJ~&E!QJ(|GyQ__=kR#*1}oREDF*deKZ?v@wmBKaJhW^L3rZf2vQTGTb!Qi)QkojcL66X*|EK)A+iYI6AEiH;wh8nY?IY z8ZUnuKfA8e`0DyJD#J}8kOOwv0gNj7i~=A-jOeZ597R{#JwVh{w{X zid#Oj7rWn*VKpilRxRS2qqeak=Z01C@;w!KbTyd-nku4magepn;UvE}U_~B$GKv^$ ze{k^PGj(Nm9ZI*9EUs>Yh&uu_cBfp*`peNL{S322igFCC+xUq^cL{T>jJ5+9SO3;9 z!L~2l(Hk%mum+Bic0fj27j_oONIM`SZT8IQ2J+y38EFS|BW>)0IXR^k1E6H zd!}Br@ZYkc>3Y#r{#6}kHY|T@xBPv6T}i)g-kTFIuo+&cbA|c5Xk!{LpMzgm&uN^k zdsC*B;TGb0(M(=cpT^&BM2)+{S3PDtoP(4b84q{7n{6C&+w(&-O}<-aAm`n&?XkHw z*v>5paBBq=!4@+YnPckkSs1Q1OO-gTqHCgw;5wbMG!abbYy(c1=yIA)dbQa2z$9lq ze-Y-e5CM=d(mM;b~>K<-cAulNW7F^LbHy8vi+wvmo*-V9HC(Ba)c?*_=eNd5L){7mH^yu{bMQ__>S|Pv=Dq0MR+twjCoI zvh$;iMx0+ylAXO&W3SW7a0_U?XeKYJlkA2Zw01e@gX=ntudQ+3X=S)+tQXDXMH|z2 z`3vaj^_<43y1F`-`;HdsZl(FWXk!{Le;WU4U8k`gb2yjBRV>s)F6Q&1`ZR7BB>q_p z5~mCk9vg$i%+J@^v@(oMPt}X&a^KNH-K{jA7u9j*#KyLOHE#>JX&tu(%+|LBOe@2! z!}X$>yr@2l8{*X3#i=i>D+8~G;>_iu??PQFp3jRmrt$LE;n{Va#=7V`my_H=of_x! zqK#?1{Av8+dQRhPof@a}z__FJqM5v?K8+jV)IW>e*F{{$gFHvF=fw&ONF} z>qRqp(Z)1h{xp7RJ*RQ1K38-3R?3C?CX@NRXk!{Le;WUEU8k|Wm2xgWW?-QnqCB4$ zZA|0kPvfW8bsFpLnYldLXrUh5GM^XKr|~y8c9Q&a#2|jBWZlcR_!p=B6dOsV@>|2Q z+ZTT(6Mg5Es;H=W(OkV~HZQ89%!X9FcHQQ|b*22eL3l3T3%^k3?elq2eHt%3?vx+x zT8CX^&((E318ghMEs|W^F{p5-Y-<^pJKCY1?xt#V8|X&IEJNn3SFBsOGW#S}v+3;F>%%G*?KvB6r89NA)O2o_nyMEa z%^;U9)cuCDdC^>6RL8deV&^#v1Be|f&b`&CYj$)l2RyS&FX4}JINaARgJ5f3NH`eh zwGI3)I`R|pWLu)b$UzMHaZ08Mgd|Ef+ z?uQ`WMYZnC;pm;^Lx*W)kItXGdHjd?)7amQYKIQnXLjgtP(E~cElr(qXAeKxrVhr@ zpxZ%2fT8X6shpGxuxjVzYJW_3z$PHOf`*fyqg{jz5`{RZSU-+_{y4-iobVcNcRnzp zlX4@wyBv@Y+F71jxa{yxA_PTlifq)aF&w!!7DWNOfd)9WcQ74(eyK)PlGSM&hIpar zj_+jyXVb`*tJ}Fj-W^2!B7Lh%EOaH&Fvm;h6_9<+WctuA6Eya#{#G0AVt*&6`PylF zZ5Q^a3q)97wUH-E_jycUSi&JcAnx{VyU;)mbQ9Zfhf~{*A2rtxjACB?f8-;FCIGIqm#z}wf#!$oIFo^^d5UcnUPNakSz~k74J~i0W z$$#z1_wKtf-fFj?X#1<4I_bH;pQTQkN-zA`M}y8EH^J^D&QVpE=IReoUG))}OE;yf zSae{d=p{dTy3cv7hy0n9ApP>kq5ns>!5P#Z0E!_%(-vEB!ES}&sBK+%#Bqs)ta6NH zv|9(li${>r?!_seY%>s(iqk1wBNgu5W|_QWQ#Ib|ypOoh%OBIR&p)`j6W4z-ACoYH z6F7BddAMgUm*+4BV^=BXfK$?V{qRqJ5ks{Q;{V|0(Vaa?!@|q-ewL9S4LTo=Bjc#U?lx&?f`gSM zUvQa#ddY=9ocw9eCSJJ1JY(b4j?L)&b#a8&T~U-Xc-=w}a>Ys)F77y72*ZYj4ZACV zIDB8{>#H-Mzad7HvOcnx)0h?|F0=DUNLOe&_7}FOhwcVFe-`>r<%jd@Xw|!owtLXC z62l5a*Vl}PDQCJjNp#YB0F6O=2^|r2wroJ0A6tG;s|GLdBks8=0EvB@KLJS73%~M( z!2SrC#35{PNjSwmJ$?8KoJLL5INMdzBOm{0kbaX_`85`p&VG!XKOu)-m!l8t4y1IB zlx}4RTK|_n>6+@{7}*imTk1z#1HsiCalN(g3D;ZQ0oSh%b9&e8*;%?8*AB)7oYLt( zJjq0)_wvJxOiZTpA1C9Ga&_3i@MOB6jJIbQTPD*frGHI-w68RoOz-;;>EBew6@Zfa zChmQJL+HPzNir6&QXi&%<74W>etujZj{Z6s2bAmkFsqC=XBqTiP8n}ehVR3?GTyEX z--iV z(_)HTZr9-QiXKoE5%7m~OB|loBdu*|r}KMO=yoeRa??C=A%qq^cM+Q1(%5$2fJO*M zosTqVEB2R_AkcwX-2b3fdWLc|OD*A@JW&}73x5%O?l(!0%Mr92nl4fmo%PH_gwCQa zF@?T5F-m+MrnL69h9AealE<;FEstAULXO98z8a5XTaV|swm**J+VQB{`fKBi z?m~yKcDr~dM8f#Yh}IHqrs9WX;_2M~DM4y0E68!Je~l;F^L7@H{JArYp~Q(5FQWy| zfIOG!1~Gg{97BRO@|Ujnfsgpp-NonKjX$oqv$%MxqWzIAr!htJtu2zi@O~kbz7GOx!Frq$j#-?mj$`zKhJ0m{w8un2@ekE&!y44 ze9dd$ncz_mXYGwGJf4l+8$Rlhy)2hi2PHzl1~A}c`Zi`0$@I-28AL|thKK|t5MZ3n z4O0^B@9jmo&W(^yn%7Kd@T#^%q9|iDo&!k&f;8_`rN~L$m>2A3SZ#Tg#i*g{Td^rw znr5Oqdtv8`E#212R#h5yB8o1@k^qMOY%Yq-nj3q-G{mZtSoN zzTEa(dTnBz3;_>k==GbeEiYg7Y;Ae@s%EP{ zW;7SK6?)9Di+w$2fNyDY`L;rj8U5ShqLtNRVZ1sle0d;^B>M+?JreE(>SIwD3~+@R z*6lXisQHak2uQJ3fwOqavYlWPtYzC>rOMW7CNp=D2&xwt!#0xwpr1V5gm{W1nRS>ps#Z>L+4T~sV{KLKZtc0p>7 z@LzZv380QYhNq$1xQz-a#yAD4id_kpdgDar%~${h#;_$)m-$1MK^q^#V9?lF(TR*t z{6vMERHtaJ7pJidwNYjdH{$q!-H)z|=Ne|YrUjFkke39>kQ1t8g;rZ><5mY;Bc=ZX zSS7HxAJ8A{1{3U-C)I|jGA2{jcECf)+P-bl9=}Tu#w9wFlWF_qmiYo@-lRsilZj@k z=a;$qF~>85a=>8ftsB(fi@BBX$KR0(iUgoP&EN;Nb}4~p+I$`McPKLC$zG67VSN@aDc#z8R~_X+ z0HclcI*<8>KEeEsrSH}cNG0%GI7Rw*lrc&MCe=&Icp%Hbtb0J|Pw5Z#dtr{5b>E~h z8AsHr73~tsSl0_0-NKMv(D>tw%`+hJCD;b&nk@o)uB;nbfx5+dQND*+qJ~MD{OXp- zAl*Kxiz4y8)kJ3looL9MVdh85=;-W+A$-;pLF2?nApD$;m@r35$H~s{`-pob$L|-f ziS;?@f3DhNR@Fb2 z6GEr%#t|6{pI{UA<8d%@IGEp5ip|R{ekCL|IJ+5jL-|5T5$9v!zgEY(tYK?Ra+K;*Ne%Ut+nU{ZR6^Y2NC#8Q8Q3sDGkhqTU3 zf-7=e;LYKU5^D7$dO{ldS1NmEc)d}VyKq{rrYv>RWJfkLZ#UPZmsp0_wi**xb#lhExWs6>@P2-@dYx6`7nK?F)Bxhj zm{EoV4W?j9>0fghHYaBufVmW`_WK=%Sv(0Sq=DUzZlUFZwQy%}|CgR4X@TzECgBQK ze3p&8fyVVy2wsZqVCD~hN!D3h_dm#tbq69SEonU8{E!ky_zq-MSd(OTeyP)^z+oJp zl1U_~q+yq_F>UgY4l9>iBZJmUa?qF;NQ@J(QC%9z9VSA`mdlwrvqGc?-!w~0T9c-} zF3Tb7u^@^8S<;$JFO=Gf(+BR^DtGps5-rkm_QS{6q7Ny3L4TTL98uz{`lCe<)AVtr zr|z>1gZn8mN^tMfU^dbBe}*qd(zBoCM^np8-g}z#gIUILCBCRXnrH%MPAPpx?|AX? z80k`jKbV7WZ5A*?P3Qy0vUjn~Yc;iQU&5|-`L#ajF{$;*Yp(T29b6Icv^wH-6k3A6 z;zkyD)#k@6i31kn;|03+g(l>Y=Q57|jxsvwBh#R)>;y@}@b!nGPxyc+GmY-*0XH~; z{*?Wz_&~wtl7H2QGsrV4JsRfc{HshOlqjlFwhvC`E~A=j zB^Z_`8G40WE*K>#Ku4?P+5CyOd~@Y|(8(5``!BMD52wfN2dJ_5JoGiPPAEf*&pstSp+A1{IjHm*mtl*~VbZ0wU~yYp zynylAe^Q-ATdX_Q*3nDk57E}N62GfIvTd;L%qaZ<{ozDRty3$um5uA(<4B6b>5Toj zah>^nvhGuc#&up#zo{obu8Ybz?lP>c{iIhluFqSYMO*aK+B*DxYSg&)De)ft@#8wE z^l$5rA6KodAN2$x|AeEHXjil=7Qq>(WZtjqHHfx>oJmgr9BiS68X_}^;}Qg0h)Pgl zhztd5P7l4sv%iXDPEnA)I`VV$(YLe6kEPT4QP7KOS;5(dQ)wISKWNAV)wD zwXj}dx`B!emLYI-a<=FSxlW5748|&Kn=gOiN;p&lSXBcM=eRR?-hi;iK{{-7YNo}f}D zSo?scDTxhdc-WmZZjt?v0XxVdY8zyQ8GMm*a@qsf8UKD!4qERCG%ioL=grY;lYlVL zeJ`*|Gn2-_4?;YW2|$_i59Fr7FrBgjbjRF$;X_WHlTp}C)mD3YMpxKNuY5>RfFtR7 zMFdLZWi>vbtcUeSXnrb~Oi%0KH8MA;YT7+VM&~`bVd-*)aE4xctISeE`1e3Z7{M%} z-63;z{t@IfEKct||0#*(LLzVvcc)p2qU${1+ zk94hyHzq9boeDNI-p+LUXIAEX5W`jXXwNb z!%(=z?O;Y|ROi=786St!f4pZ_=m6Xg{}PZeWy)z!47hV=8s590j z*SaKR%e9&%*x5dpqOzrHU9qnxA5CAEto6*hSl2vmog|&()(I;p=vR)CUjv|zKES>W50d*y z=O8&`1!a(I4;*_4U=J7X!@J_$C#DzKVyHfMS^C`K=hj2ge$QKFG4&39^J68z$sG7? zXle_L6$pT9j2#>5QYJM=)6VLi{)OygT0=1098vnq&R}MCm*Yx*MSr|i^AzdQn)3ZD zwvO1>O)F@oGA(7?T^LGgr7jHiwxi) zN!=R2IVHZPKYjovlrOSJ78AHMfL!G#WmOzXKcyd033g^PMxIs%Mil|*KBX6#AB*}u zKS6AP_W1k>1?5F*brtTHqr+Et zfOKBrL-LtaRy`R5QrXu`JvV>jRwqgz5S8Nn;JfTobdi9PolJc2&&Gen5s2_TIod=#-eVqb0@-A2-^!Je^CQw`)=}(?_;s z397g=rFjD$o|H6E!u~YUqf*Bsf~uKV6Q2wJXa-UYe~vxwli{zuT8p8{cV-_f#=RI7 zvbrBp-Q$J*v1)t7V__MKOpis?&s_#(I}agmm`1P)bp1C@5XTM|VDJhc${t2C{S3Is zAKQ};y+{OwaAZA{OGG}9fj#na$E{mskTcQ=MK)Mpx>lK%oY>W3CNqK}e?dEryz!pN zvPgO=N4vKzLO;T=(hk9<8Sl|9w?d7<7$d<>u?{kVbX>fHlCu_&EC%H^Qb##Mvgelg zMMU46?arANB!bb!)%zl{j;~K;TVS!o)M_Sk;t)|Yb24HqiexMA4>9;lQ0PZo9PzVj5$A zIqTl#`R|go^_MO0TVrjDXR|C{tsqvev2Q1r7yp*1tv;KTzFl^0_x@c$Q~OEhGv+fYC0OkCUH$1ydLk;0B1y z`$#d4&P9bMrsv*aPgq`*GC`gNR9Fyh8fBKU53$(jLyN?-JZGK^RSkxmzx_0J&d(6u z&vuH;{qdS%+u_&w^iV6kkNosW>9MT1H}sUS6LiNre;6|Za0b1iY2$DRi`1bB!zzuatbt^-Cw2X8r>ajQn8O{k~X3~e;qd6`c4uz=B1mh|qq!;~% z9>>5FHRx)V9p9=-#t7N9HjIowG$|*Vh5P=H8Rl4<^ZXk5(AT^(MBc-;^3J$uS}fjl z$j~F}47Egi zy8KDt#Ln%~O5Z46-{o_g4OflEk#(gR?TUA0KzT}-qD^vy9Nn3U=*vK-UB-tIL8F~C z>5izFV{tsSM2mYPiV3L+oy4;}DRd)_bb4{;RJ$ujKR-Am6fw&tieyNPfD3QIdo0e9 zr}=}OUg;w+uFl^p_*JjOw6Bc@nwKhC5~!&0C-|U@C>bs9Ipkb|7o__ggj)1Xl{uc8 zxo*TN66i!$6IR7bANPCE67~>ki>Ew1Qim!=ADXjW+46a@W-5fv;@i=IS#W(&9ZB0z zW~;9jUWQ?6hV{a<5L@>2r)C1_yqVB})#{Vdjm(GEb*}p^opZLNP-sa&pws6<7nH#d z*uLfE=-dqkeClVl(T9`+K@peYwR0O`&~wIa`Ipap5{)KK|4cu!vL91oUVpsUbCPuD zSRTuu)fSL5oSVFivCAui+5qOI4HZAP-};|&P?^a9w=E$9h!upXiw8rxGF-?Ena)JR zWPxA{>{w$V7p9mQqJLd32CH6|Gs(ERPAZ(MRM*WF;mi5QO_b8K5Mzhvs(0s*d?tc1Lpwma+@0IKheZ-{7-M zn2YluFI8w4JxWJ*YtysY_I27o5VXFh40f=Gs)P`k5&wc>`5U!h|F0^OB})A}PP&8; zD^xf2A--&;Z_tk@(zXg5v`kmsf_4TJ__cI(;x=JAqh5@p@3tON7Y?8)rGH(2{GP69 z(xvLsMPhF^fSKEvP2hFnI$h}}^Dft+!-^XjOy6xkntZkhDt%OcJh%>$E_GK1<6 zs{2R#p}Lzm7fk6(`Xj3=(4Qw=s;*)gEGBb$z}w(X>9Dhb^pEr-Bk2((&bTKxo1{zi zE!{nWKiv!*`v*SXoPJzC3WvH^i8=l8qrH#xiq*NgPHSW3VEQ@xaihIo>3RL}qdh^o zRNdNVlgKhrL2e)GGrkP@=l>FYubKXpeuS;FN<3tl4*YYZOC9P{UFIJ>K8x_tN_{c0@D45S$JCZA+}7LwqDbRG@&f9Y@SRY_7$iP3C z{-b`_LW8K9&M7@rk`Lx(_%C|%>;TPkAlik@P>gfapOpu562Jum0i@11xPj1ztNA@YYUjVXqm2C zr%9KfyQn6IGDrWO?+4TO=_jTd1j}iqe@}lpuBI8%%hi;}0iV(~h<432`FUl^bteH@ zn;@1Oopzu~-hG#xoTIgx{00lF$=s#O)s)FK3-6$&X8Lvg2u^cK>^rPX*Qa?hN`2~! z0jD@Et`7zrcL&LpFraTO_p6qnCGlu+EsN$X$D<>EKsAHuZ|O&ren^S;>5m`P^!qEL zO2KQbro%l+Ew-$hGSGP)np@|Mn)$7=PiAq0ip;EvkNx|yR>^U3O_|Vm;W$F#X!>>i zXiYq&#KZ2%X8kPb(p=rDXxyK6VYjh-1>s%^4c{IIUG4rRBRk~=GfaftmD4UiDH#Ie zl07Hk)55XNuZ6Ae1U_&c)XHbo_x)dQ8#03>bb32`!VaD&KEI*<`NWz&-%|gaxMFdk zWn2Fam>atyIk3#8SSArAuFKAXx=Bx*0-~L%q`u1ume1mZr)O2z9ia0Y5PnsAW6MtC z@}Y7-&bZue6V@c5!5}5CVHWReuCd)S64{V8zL;62%vNh`!bl+BCjeZOW?Ec2TuyP4u;C<)U`Xs?Xl58RCEY z2JT|cNi;P72g9BVE1HO=)nPWa85T$BDQ(x#_T6XIS5FpAKxMIohN#PJ^=D@olMl&o zo*b*~E}d9Ivut^`U?zG&qo5C6^X(qb_93tR(-YYq<7a?C>GZptbv#HN0(9OrAp1=^ zOyH`)LY_8O1%W^K9x<$Q18}XKa z>ztJuYW^JdST+!=sD8dC(W3UbDYgay24mJ+ zVA5ssOwToXtJrG45N7dDke1u23*L4RxlE#ob>xSg{;SAf?c24;VAo&K4)#_U5|Mf^ zSXyy(#1@B!dqo7H-Glz56aknj?d%ssKmODGIdsm*nH+AqQ0J-3W`ILN#DbfhcMo90 zMpHK(kVeD1oMqRPK32QszAJcIK0X!$^_A`?v7>ai`+wLSmMM20z7>TdKi%V11#7Ym z)gIy80;;p^^6>d*XP;@!G`i7fJ2vo0$;81R2|F`Qp*M*~27Th;!PXkSf7r-_@86Yu zf8UzE|6PKct^E%U`NZr{>zOsAgr2-0b{1*h%x5(P;LXxfZ5dcY-`}2%z1;S9&~^kh z5^_{q{ET=Fxy1u2CqCJ#+rQTr6;&vsUro?2dM&ewFt~OYL&onkyBx*9R01T{qx4e7 z?`i~SEQXF6C8Y0@*gBS;(2rN+O;A0XI}z5}?!Mnejx+vFhqLw74<*Av7fFz|d{P zrCmB&h+L4n?b&HntxJ*c9Wtcb1=r9@C?mQvm1mQ?2*hrj_p^kfv53#62TAifsl%i? z1&9}Yn}g}p`_WU;6ZGT3WTy23O#Q!|evhU$eXD-FpJs}5XEom*_#_{Vr*G4bmy<7X zDB6 zfKzf^&0q3s_v*e>XrKS`^uzwk{%~3u75jgCUP{V%`Zd#d+}xg#inA1q7sE*&T;O!> z=*K*qlq$igpdk0H(M}^h@yN+CnD^131GA-M3~*rX-|bU6DYTuwPx0y*TIp!erMg`> z1sz5o(MKbdZx1QfeW`C3580!}g%3gsh8jwhhP=yBTWU+7A|;ITfL9VKKEpZF#^oHI zkOvV4CXeWa2639Ln*vy*R+1BTn3IqWq>@uB^LQCgkaVV1&K6WV=DC2DP9Z`K*Kj#q z)bR+N$(^2<{sJXJXiMqq0Ym6wF@)GBJI|pDLE3-Q?1c9K)|ic#64G;uA|FftUO%32 zPm?Y|xX*|CwFHf4RxRT+7gzP+tUeq}KVm-)jgOLExy57m@L?+eyiT1788FfeXU?Sc1 z)sG;4j70LD(E%`ev6!H7t<=3G1=s%FJNG)~O+gOurPHK|3&^_H|Dy{!;?!?|Ijfa@ zH6P6jC%vm=PB^)mk4~4+>V(j0H6I;&uxRN%(yRLDtSqtqCahDk#IB~LhqZIon{N*+ ztn#C2xBu2aKBeupt7++oJ{ooNbZE67ouNw^$WN}ed*>9!?AP_vF1~qXjF^ s`lk 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 z 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

=6J8l#Ws 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

kxy&;1c1mvgPI;Cl}|UROR; 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 [number, number]; +export const reset_env: () => void; +export const __wbindgen_exn_store: (a: number) => void; +export const __externref_table_alloc: () => number; +export const __wbindgen_externrefs: WebAssembly.Table; +export const __wbindgen_malloc: (a: number, b: number) => number; +export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; +export const __wbindgen_free: (a: number, b: number, c: number) => void; +export const __wbindgen_start: () => void; diff --git a/docs/pkg/package.json b/docs/pkg/package.json new file mode 100644 index 0000000..733cfb4 --- /dev/null +++ b/docs/pkg/package.json @@ -0,0 +1,15 @@ +{ + "name": "apiel-wasm", + "type": "module", + "version": "0.2.0", + "files": [ + "apiel_wasm_bg.wasm", + "apiel_wasm.js", + "apiel_wasm.d.ts" + ], + "main": "apiel_wasm.js", + "types": "apiel_wasm.d.ts", + "sideEffects": [ + "./snippets/*" + ] +} \ No newline at end of file From e03710761f937921260e447c0385809b65700b9f Mon Sep 17 00:00:00 2001 From: Mark Firman Date: Mon, 30 Mar 2026 16:29:48 +0200 Subject: [PATCH 25/25] Bump version --- apiel-cli/Cargo.toml | 4 ++-- apiel-wasm/Cargo.toml | 2 +- apiel/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apiel-cli/Cargo.toml b/apiel-cli/Cargo.toml index 73e76cb..a0e2010 100644 --- a/apiel-cli/Cargo.toml +++ b/apiel-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apiel-cli" -version = "0.2.0" +version = "0.3.0" authors = ["Mark Firman "] edition = "2024" description = "Interactive REPL for apiel, a subset of the APL programming language implemented in Rust." @@ -15,7 +15,7 @@ doc = false name = "apiel-cli" [dependencies] -apiel = { version = "0.2.0", path = "../apiel" } +apiel = { version = "0.3.0", path = "../apiel" } tracing-subscriber.workspace = true [dev-dependencies] diff --git a/apiel-wasm/Cargo.toml b/apiel-wasm/Cargo.toml index 07a16ef..4053f10 100644 --- a/apiel-wasm/Cargo.toml +++ b/apiel-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apiel-wasm" -version = "0.2.0" +version = "0.3.0" edition = "2024" publish = false diff --git a/apiel/Cargo.toml b/apiel/Cargo.toml index af3c0e2..ca26890 100644 --- a/apiel/Cargo.toml +++ b/apiel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apiel" -version = "0.2.0" +version = "0.3.0" authors = ["Mark Firman "] edition = "2024" description = "A subset of the APL programming language implemented in Rust. Exports a macro for evaluating APL expressions from Rust code, providing a way to solve some problems in a very concise manner."