let-keywords*

[syntax] let-keywords kv-list allow-other-keys? (binding ...) body ...

[syntax] let-keywords* kv-list allow-other-keys? (binding ...) body ...

Guile: extracts value associated of keywords specified in binding, and binds them accordingly, then evaluates body ....

Binding can be just a variable, or (variable default).

If allow-other-keys? is false, an error is thrown if keywords not listed in binding is found in kv-list.

Let-keywords and let-keywords* differ in terms of binding timing of variables.

[syntax] let-keywords* kv-list (binding ...) body ...

[syntax] let-keywords* kv-list (binding ... . other-keys) body ...

Gauche: only has let-keywords* variant, and slightly different from Guile's. Doesn't take allow-other-keys?; instead, providing other-keys argument let the form accept keywords that aren't listed in bindings, and those unmatched kv-list is bound to other-keys.

Binding can be either (variable default) or (variable key default).