4 ms·
> This is why explicitly said Lambdas A lambda is a function. There is nothing special about them. There is nothing which makes them less or more functional th
by lispm 8y ago
> This is why explicitly said Lambdas
A lambda is a function. There is nothing special about them. There is nothing which makes them less or more functional than other functions.
((lambda (x) (* x 10))
30)
FYI: above is valid Scheme code.
BiwaScheme Interpreter version 0.6.4
Copyright (C) 2007-2014 Yutaka HARA and the BiwaScheme team
((lambda (x) (* x 10))
30)
=> 300
Above is lambda expression applied to an argument. There is nothing 'delaying' about it.
> You seem to be confusing what the CL Hyperspec calls syntax,
No, I'm looking at the Racket documentation.
https://docs.racket-lang.org/reference/syntax-model.html https://docs.racket-lang.org/reference/syntax-model.html
The reader in Racket reads expressions into syntax objects. In a second pass it then creates a complete parse.
In an Interpreter based Lisp one reads the s-expression into an internal representation of lists, symbols, numbers. The interpreter then has the syntax encoded into its code and walks these lists keeping track of functions, variables, built-in operators, bindings, ... etc.
That's pretty much what a Lisp interpreter did since the dawn of time. Two decades before CL even existed.
Clojure even doesn't use an interpreter.