Concatenative topics
Concatenative meta
Other languages
Meta
Quotations are the general term for anonymous functions or lambdas. They denote a snippet of code which can be executed later. Their exact syntax varies by language. For example, Factor denotes quotations using square-brackets. Whereas, Tal and Postscript denote them using curly-brackets. Regardless of syntax, they are core to constructing higher-order functions in concatenative languages.
A higher-order function is an operation that utilize other functions as inputs or create new functions as outputs. This feature is leverage by a core utility of concatenative programming: combinators. They enable a programmer to name code not values.
! { 1 4 9 16 } { 1 2 3 4 } [ sq ] map
// [10, 20, 30] [1, 2, 3] { (* 10) } map
( 02 04 06 08 0a ) { 01 02 03 04 } { DUP ADD JMP2r } map] Implementation of %map%: [tal{@map ( | arr* f* -- arr* ) SWP2r LITr _&f STR2r SWP2r STH2r DUP2k #0002 SUB2 LDA2 ADD2 SWP2 &>l ( -- ) STH2k LDAk [ LIT2 &f $2 ] JSR2 STH2r STA INC2 GTH2k ?&>l POP2 POP2 JMP2r
This revision created on Thu, 21 Mar 2024 03:17:08 by neauoire