https://github.com/abrudz/lazy
Lazily evaluated (late-binding) definition for Dyalog APL
https://github.com/abrudz/lazy
apl dyalog dyalog-apl dyalogapl late-binding lazy-evaluation points-free programming tacit user-command
Last synced: about 2 months ago
JSON representation
Lazily evaluated (late-binding) definition for Dyalog APL
- Host: GitHub
- URL: https://github.com/abrudz/lazy
- Owner: abrudz
- License: unlicense
- Created: 2018-06-07T10:49:16.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-24T15:39:10.000Z (about 2 years ago)
- Last Synced: 2025-02-10T15:30:40.008Z (3 months ago)
- Topics: apl, dyalog, dyalog-apl, dyalogapl, late-binding, lazy-evaluation, points-free, programming, tacit, user-command
- Language: APL
- Homepage:
- Size: 15.6 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lazily evaluated (late-binding) definition for Dyalog APL
*True lazy (late-binding) editable, SALTable, Linkable, `⎕FIX`able definition*This user command allows defintion of arrays and tacit functions in a lazy manner, which means that their definitions are not evaluated until runtime. This allows editing, SALTing, Linking, `⎕FIX`ing, and commenting both arrays and tacit functions, and allows tacit top-down programming.
## Installation
* Download `Lazy.dyalog` to a location
* From within Dyalog APL issue]Settings cmddir ,*location* -permanent
## Usage
]Lazy ⍝ list all lazy definitions
]Lazy fn ⍝ show lazy definition
]Lazy fn←code ⍝ define lazily## Examples
]Lazy Avg←Sum÷1⌈≢ ⍝ allowed even though Sum is not defined yet
]Lazy Sum←+⌿
]Lazy matrix←3 4⍴⍳12 ⍝ formula will be kept rather than executed, so this array is dynamically ⎕IO-dependent