Glee

From APL Wiki
Jump to navigation Jump to search

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 (like APL primitives) can be up to 3 symbols in length.
  • All values 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.

Pretty-printing 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
APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLdzaima/APLExtended Dyalog APLGNU APLKAPNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXIverson notationIVSYS/7090NARSngn/aplopenAPLPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyJellyfishK (Q, KDB+) ∙ NialRAD
Overviews Timeline of array languagesTimeline of influential array languagesFamily tree of array languages