Skip to main content
deleted 8 characters in body
Source Link
Drew
  • 79.1k
  • 10
  • 123
  • 257

"Function" let is a special form.

Like Lisp macros, special forms do not follow any particular rule about evaluating arguments or what to return. Each special form has its own such behavior.

Consult the doc of a given special form for the answer (or the implementation, if the doc doesn't tell you). It suffices to use C-h f let:

let is a special form in C source code.

(let VARLIST BODY...)

Bind variables according to VARLIST then eval BODY.

The value of the last form in BODY is returned.

Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).

All the VALUEFORMs are evalled before any symbols are bound.

Emacs often refers in a general way to functions, macros, and special forms as "functions". The predicate that tests this sense of the word "function" is fboundp:

  • (fboundp **'let**'let) returns t
  • (fboundp 'forward-char) returns t

What Lisp more specifically calls a "function" is something that can be funcalled or applyed. The predicate that tests this sense of the word "function" is functionp:

  • (functionp **'let**'let) returns nil
  • (functionp 'forward-char) returns t

"Function" let is a special form.

Like Lisp macros, special forms do not follow any particular rule about evaluating arguments or what to return. Each special form has its own such behavior.

Consult the doc of a given special form for the answer (or the implementation, if the doc doesn't tell you). It suffices to use C-h f let:

let is a special form in C source code.

(let VARLIST BODY...)

Bind variables according to VARLIST then eval BODY.

The value of the last form in BODY is returned.

Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).

All the VALUEFORMs are evalled before any symbols are bound.

Emacs often refers in a general way to functions, macros, and special forms as "functions". The predicate that tests this sense of the word "function" is fboundp:

  • (fboundp **'let**) returns t
  • (fboundp 'forward-char) returns t

What Lisp more specifically calls a "function" is something that can be funcalled or applyed. The predicate that tests this sense of the word "function" is functionp:

  • (functionp **'let**) returns nil
  • (functionp 'forward-char) returns t

"Function" let is a special form.

Like Lisp macros, special forms do not follow any particular rule about evaluating arguments or what to return. Each special form has its own such behavior.

Consult the doc of a given special form for the answer (or the implementation, if the doc doesn't tell you). It suffices to use C-h f let:

let is a special form in C source code.

(let VARLIST BODY...)

Bind variables according to VARLIST then eval BODY.

The value of the last form in BODY is returned.

Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).

All the VALUEFORMs are evalled before any symbols are bound.

Emacs often refers in a general way to functions, macros, and special forms as "functions". The predicate that tests this sense of the word "function" is fboundp:

  • (fboundp 'let) returns t
  • (fboundp 'forward-char) returns t

What Lisp more specifically calls a "function" is something that can be funcalled or applyed. The predicate that tests this sense of the word "function" is functionp:

  • (functionp 'let) returns nil
  • (functionp 'forward-char) returns t
Source Link
Drew
  • 79.1k
  • 10
  • 123
  • 257

"Function" let is a special form.

Like Lisp macros, special forms do not follow any particular rule about evaluating arguments or what to return. Each special form has its own such behavior.

Consult the doc of a given special form for the answer (or the implementation, if the doc doesn't tell you). It suffices to use C-h f let:

let is a special form in C source code.

(let VARLIST BODY...)

Bind variables according to VARLIST then eval BODY.

The value of the last form in BODY is returned.

Each element of VARLIST is a symbol (which is bound to nil) or a list (SYMBOL VALUEFORM) (which binds SYMBOL to the value of VALUEFORM).

All the VALUEFORMs are evalled before any symbols are bound.

Emacs often refers in a general way to functions, macros, and special forms as "functions". The predicate that tests this sense of the word "function" is fboundp:

  • (fboundp **'let**) returns t
  • (fboundp 'forward-char) returns t

What Lisp more specifically calls a "function" is something that can be funcalled or applyed. The predicate that tests this sense of the word "function" is functionp:

  • (functionp **'let**) returns nil
  • (functionp 'forward-char) returns t