Glee: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
No edit summary
(add design section.)
Line 24: Line 24:
= Design =
= Design =
Glee is designed as a more convenient APL-style language in the creator's eyes:
Glee is designed as a more convenient APL-style language in the creator's eyes:
<blockquote>
<blockquote>
Glee is my-own, and to me, my-better APL. It keeps the features I enjoyed in APL and removes the warts. It supplies features I always wished APL had.
Glee is my-own, and to me, my-better APL. It keeps the features I enjoyed in APL and removes the warts. It supplies features I always wished APL had.
</blockquote>
</blockquote>
In that vein of thought, it completely abandons many tools supported in modern APL implementations.
* There are no [[tradfn|tradfns]] and no [[dfn|dfns]]. All functions are declared using blocks, which take their arguments via variable references.
* The language is evaluated left to right.
* The general method of looping is via imperative looping constructs (<code>:for</code>, <code>:while</code>, etc.) which take blocks as arguments.
* Operators in Glee can be up to 3 symbols in length. This has not been observed in any other array language.
* All values in Glee are objects with their own properties(akin to Ruby/Perl). They can be checked using a : suffix.
* Glee has numerous reserved words which all start with a <code>#</code>. These provide additional functions and values outside the symbolic primitives included.


Prettyprinting is not done on values by default. Higher depth arrays can be inspected using the <code>%**</code> operator.


 
Glee comes packaged with a GUI-based IDE with some debugging capability. It has been confirmed to work on Windows 10.
[[File:Glee window.png|thumb|Glee IDE]]
[[Category:Array languages]][[Category:ASCII languages]]
[[Category:Array languages]][[Category:ASCII languages]]

Revision as of 06:09, 31 August 2021

Glee is a J-inspired left-to-right evaluated ASCII array language which is "targeted at applications where languages like PERL, Python, and Java have found secure homes." It has a focus on programming features which are generally uncommon in array languages, allowing variable references, complex scoping, built-in stream and socket support, pre-made container objects, fields and many others.

Glee has not been updated since 2004. No activity has been logged on the main site since that year.

Design

Glee is designed as a more convenient APL-style language in the creator's eyes:

Glee is my-own, and to me, my-better APL. It keeps the features I enjoyed in APL and removes the warts. It supplies features I always wished APL had.

In that vein of thought, it completely abandons many tools supported in modern APL implementations.

  • There are no tradfns and no dfns. All functions are declared using blocks, which take their arguments via variable references.
  • The language is evaluated left to right.
  • The general method of looping is via imperative looping constructs (:for, :while, etc.) which take blocks as arguments.
  • Operators in Glee can be up to 3 symbols in length. This has not been observed in any other array language.
  • All values in Glee are objects with their own properties(akin to Ruby/Perl). They can be checked using a : suffix.
  • Glee has numerous reserved words which all start with a #. These provide additional functions and values outside the symbolic primitives included.

Prettyprinting is not done on values by default. Higher depth arrays can be inspected using the %** operator.

Glee comes packaged with a GUI-based IDE with some debugging capability. It has been confirmed to work on Windows 10.

Glee IDE