Releases: RubenVerg/tinyapl
Releases · RubenVerg/tinyapl
TinyAPL 0.10.0.1
TinyAPL 0.10.0.0
Language
- [Very Breaking!] Change index origin to
0
, this impacts the following primitives: From, Index Generator, Index Of, Where, Index, Grade Up, Grade Down, (dyad) Transpose, Roll, Index Origin (the quad)
Primitives
- Add Arctangent
∡
- Add Round To Nearest
⸠
- Make
⌷
work with non-vector selections on each axis - Add Increment
⧺
- Add Decrement
ⵧ
- Add Span
ⵧ
- Add Range
…
- Add One Range
…
- Add Fork
«
and»
Web Editor
- Add support for multiline input (shift + enter)
- Fix some bugs in quad Fetch
Standard Library
Add std:sbcs
module for encoding and decoding TinyAPL code to a single byte character set (for code golf)
TinyAPL 0.9.0.0
Language
- [Breaking!] Change ordering of scalar wraps and arrays
Syntax
- Add infinities
∞
Primitives
- Add Laminate
,
- Add Mix
↑
- Add Major Cells
↓
- Add At Depth
⍥
and On Simple Scalars⌓
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells), ‿ tie (like vector notation)
* trains: ⦅⦆ deriving function, _⦅⦆ deriving adverb, _⦅⦆_ deriving conjunction
* structs: ⦃statements⦄, qualified access →
* assignment with ←, modify assignment with ↩, constant assignment with ⇇, private assignment with ↚
* array assignment with array notation of names
* comments: ⍝ until end of line, ⟃⟄ inline
TinyAPL 0.8.0.0
Syntax
- Add ternaries
⍰
/⍠
Primitives
- Add Decode
⊥
- Add Encode
⊤
- Add Lev
⫣
, Dex⊩
and Ident⫤
- Add Fold
⍆
and Fold Back⍅
- Add Element Of
∊
- Add Count
⋷
- Add Index Of
⍳
- Add Interval Index
⍸
Quads
- Add
⎕ts
- Add
⎕systemInfo
Supported primitives:
⍬
+ - × ÷ * ⍟ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷ ϼ ⍪ ⍋ ⍒ ⊲ ⊴ ⊵ ⊳ ⇂ ↾ ⍉ ⌹ ! ↗ ⊥ ⊤ ⋷
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸ ◡ ◠ ᑣ ᑒ ⊞ ⫤
⍤ ⍥ ∘ ⍛ ⊸ ⟜ ⸚ ⇾ ⇽ ⍣ ⁖ ⍢ ∙ ⫣ ⊩
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d ⎕seed ⎕unix ⎕ts ⎕math
⎕Exists ⎕Repr ⎕Delay ⎕Type
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells), ‿ tie (like vector notation)
* trains: ⦅⦆ deriving function, _⦅⦆ deriving adverb, _⦅⦆_ deriving conjunction
* structs: ⦃statements⦄, qualified access →
* assignment with ←, modify assignment with ↩, constant assignment with ⇇, private assignment with ↚
* array assignment with array notation of names
* comments: ⍝ until end of line, ⟃⟄ inline
TinyAPL 0.7.0.0
Syntax
- Add wraps
⊏
and unwraps⊐
_⊐
_⊐_
- Add structs
⦃
/⦄
and qualified access→
- Add assignment types:
↩
modify,⇇
constant,↚
private
Primitives
- Add Catenate
⍪
- Add Precedes
⊲
, Precedes or Identical⊴
, Succeeds or Identical⊵
and Succeeds⊳
- Add Minimal
⇂
and Maximal↾
- Add Grade Up and Sort By Up
⍋
and Grade Down and Sort By Down⍒
- Add Sort Up
⊴
and Sort Down⊵
- Add Transpose
⍉
- Add Matrix Inverse and Matrix Divide
⌹
- Add Factorial and Binomial
!
- Add Raise
↗
- Add Table
⊞
- Add On Cells
◡
and On Scalars◠
- Add Boxed
ᑣ
and On Contentsᑒ
- Add Inner Product
∙
- Add Valences
⁖
- Add Repeat and Until
⍣
- Add Under
⍢
Quads
- Add
⎕Type
- Add
⎕Import
Supported primitives:
⍬
+ - × ÷ * ⍟ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷ ϼ ⍪ ⍋ ⍒ ⊲ ⊴ ⊵ ⊳ ⇂ ↾ ⍉ ⌹ ! ↗
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸ ◡ ◠ ᑣ ᑒ ⊞
⍤ ⍥ ∘ ⍛ ⊸ ⟜ ⸚ ⇾ ⇽ ⍣ ⁖ ⍢ ∙
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d ⎕seed ⎕unix ⎕ts ⎕math
⎕Exists ⎕Repr ⎕Delay ⎕Type
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells), ‿ tie (like vector notation)
* trains: ⦅⦆ deriving function, _⦅⦆ deriving adverb, _⦅⦆_ deriving conjunction
* structs: ⦃statements⦄, qualified access →
* assignment with ←, modify assignment with ↩, constant assignment with ⇇, private assignment with ↚
* array assignment with array notation of names
* comments: ⍝ until end of line, ⟃⟄ inline
TinyAPL 0.6.0.0
- Add Depth
≡
- Rename
⎕ts
to⎕unix
- Add
⎕Delay
- Add ties between numbers
‿
- Add Mirror
⸚
- Add Left Fork
⇾
and Right Fork⇽
- Add trains
⦅⋄⦆
/_⦅⋄⦆
/_⦅⋄⦆_
Supported primitives:
⍬
+ - × ÷ * ⍟ ○ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷ ϼ
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸
⍤ ⍥ ∘ ⍛ ⊸ ⟜ ⸚ ⇾ ⇽
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d ⎕seed ⎕unix ⎕ts
⎕Exists ⎕Repr ⎕Delay
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op, assignment with ←
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells)
* comments: ⟃⟄ inline
TinyAPL 0.5.1.0
- Fix a bug where the interpter always ran in the same initial scope in the self-contained binary
Run the JS interpreter: https://tinyapl.rubenverg.com/run/0.5.1
Supported primitives:
⍬
+ - × ÷ * ⍟ ○ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷ ϼ
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸
⍤ ⍥ ∘ ⍛ ⊸ ⟜
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d ⎕seed ⎕ts
⎕Exists ⎕Repr
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op, assignment with ←
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells)
* comments: ⟃⟄ inline
TinyAPL 0.5.0.0
- Add
⎕ts
- Add Promote
∧
- Add Demote
∨
- Add Rank
ϼ
- Add Rerank
ϼ
- Add At Rank
⍤
- Add a web interface: https://tinyapl.rubenverg.com/run/0.5.0
- Add a JS interface:
tinyapl.js
,tinyapl-js.wasm
,ghc_wasm_jsffi.js
Supported primitives:
⍬
+ - × ÷ * ⍟ ○ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷ ϼ
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸
⍤ ⍥ ∘ ⍛ ⊸ ⟜
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d ⎕seed ⎕ts
⎕Exists ⎕Repr
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op, assignment with ←
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells)
* comments: ⟃⟄ inline
TinyAPL 0.4.2.0
- Add Roll
Supported primitives:
⍬
+ - × ÷ * ⍟ ○ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ? ⌷
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸
⍤ ⍥ ∘ ⍛ ⊸ ⟜
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d
⎕Exists ⎕Repr
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op, assignment with ←
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells)
* comments: ⟃⟄ inline
TinyAPL 0.4.1.0
- Add quad names:
⎕io
,⎕ct
,⎕u
,⎕l
,⎕d
,⎕Exists
,⎕Repr
- Add affine character arithmetic:
num+char
,char+num
,char-num
,char-char
- BREAKING: Remove Set Phase, Set Real Part, Set Imaginary Part
- BREAKING: Remove Scan Down and Scan Up
- BREAKING: Rename Reduce Down to Reduce
⍆
and Reduce Up to Reduce Back⍅
- Add On Prefixes
↟
and On Suffixes↡
- Add Key
⌸
- Add Index
⌷
- Add From
⊇
Supported primitives:
⍬
+ - × ÷ * ⍟ ○ √ ⌊ ⌈ ⸠ < ≤ = ≥ > ≠ ∧ ∨ ⍲ ⍱ ⊕ ⊗ ≡ ≢ ⍴ , ⊖ ⍮ ⊂ ⊃ ⊇ ↑ ↓ ⊣ ⊢ ⍳ ⍸ ⌿ | ∡ ℜ ℑ ∪ ∩ ~ § ∊ ⌷
⍨ ⍆ ⍅ ↟ ↡ ¨ ᐵ ᑈ ⌸
⍤ ⍥ ∘ ⍛ ⊸ ⟜
Supported quad names:
⎕io ⎕ct ⎕u ⎕l ⎕d
⎕Exists ⎕Repr
Supported features:
* dfns {code}, d-monadic-ops _{code}, d-dyadic-ops _{code}_
⍺ left argument, ⍵ right argument,
⍺⍺ left array operand, ⍶⍶ left function operand, ⍵⍵ right array operand, ⍹⍹ right function operand,
∇ recurse function, _∇ recurse monadic op, _∇_ recurse dyadic op
■ early exit, : guard
⋄ multiple statements
* numbers: . decimal separator, ¯ negative sign, ⏨ exponent notation, ᴊ complex separator
* character literals: 'abc'
* string literals: "abc" with escapes using ⍘
* names: abc array, Abc function, _Abc monadic op, _Abc_ dyadic op, assignment with ←
* get ⎕ read evaluated input, get ⍞ read string input, set ⎕ print with newline, set ⍞ print without newline
* array notation: ⟨⋄⟩ vector, [⋄] higher rank array (combine major cells)
* comments: ⟃⟄ inline