diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-11 23:31:05 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-11 23:31:05 +0000 |
commit | 2ff4b85fc73f0cf82034e2a19ea8c5d677812c9c (patch) | |
tree | 9792ced45b99792a8794eaf4108f551623f2a45b | |
parent | 37fe04b08b3cae7390f75eb1bb25d8fd4e958384 (diff) |
Add ⊣ and ⊢
-rw-r--r-- | apl9.h | 3 | ||||
-rw-r--r-- | functions.c | 28 |
2 files changed, 27 insertions, 4 deletions
@@ -115,6 +115,7 @@ Symbol *getsym(Symtab *, Rune *); Symtab *newsymtab(void); /* Monadic functions from functions.h */ +Array *fnSame(Array *); Array *fnTally(Array *); Array *fnEnclose(Array *); Array *fnNest(Array *); @@ -122,6 +123,8 @@ Array *fnRavel(Array *); Array *fnShape(Array *); /* Dyadic functions from functions.h */ +Array *fnLeft(Array *, Array *); +Array *fnRight(Array *, Array *); Array *fnCatenateFirst(Array *, Array *); Array *fnReshape(Array *, Array *); diff --git a/functions.c b/functions.c index 71e5400..cf5402a 100644 --- a/functions.c +++ b/functions.c @@ -22,8 +22,8 @@ fnmonad monadfunctiondefs[] = { 0, /* ⌊ */ 0, /* ⊥ */ 0, /* ⊤ */ - 0, /* ⊣ */ - 0, /* ⊢ */ + fnSame, /* ⊣ */ + fnSame, /* ⊢ */ 0, /* = */ 0, /* ≠ */ 0, /* ≤ */ @@ -77,8 +77,8 @@ fndyad dyadfunctiondefs[] = { 0, /* ⌊ */ 0, /* ⊥ */ 0, /* ⊤ */ - 0, /* ⊣ */ - 0, /* ⊢ */ + fnLeft, /* ⊣ */ + fnRight, /* ⊢ */ 0, /* = */ 0, /* ≠ */ 0, /* ≤ */ @@ -119,6 +119,12 @@ fndyad dyadfunctiondefs[] = { /* Monadic functions */ Array * +fnSame(Array *right) +{ + return right; +} + +Array * fnTally(Array *right) { return mkscalarint(right->rank==0 ? 1 : right->shape[0]); @@ -168,6 +174,20 @@ fnShape(Array *right) /* Dyadic functions */ Array * +fnLeft(Array *left, Array *right) +{ + USED(right); + return left; +} + +Array * +fnRight(Array *left, Array *right) +{ + USED(left); + return right; +} + +Array * fnCatenateFirst(Array *left, Array *right) { /* not even close to being right, but it works for stranding :) */ |