Skip to content

Releases: RubenVerg/tinyapl

TinyAPL 0.10.0.1

26 Oct 15:32
Compare
Choose a tag to compare

Standard Library

  • Fix missing glyphs in std:sbcs

TinyAPL 0.10.0.0

26 Oct 15:25
Compare
Choose a tag to compare

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

02 Oct 14:55
Compare
Choose a tag to compare

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

13 Sep 17:22
Compare
Choose a tag to compare

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

05 Sep 13:36
Compare
Choose a tag to compare

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

10 Aug 15:57
Compare
Choose a tag to compare
  • 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

06 Aug 19:33
Compare
Choose a tag to compare
  • 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

02 Aug 23:03
Compare
Choose a tag to compare
  • 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

31 May 12:23
Compare
Choose a tag to compare
  • 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

30 May 15:43
Compare
Choose a tag to compare
  • 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