Skip to content

loop is a bad example of non-hygiene #3

@johnwcowan

Description

@johnwcowan

The trouble with creating identifiers out of nothing is that the result doesn't compose with itself. break will break out of a loop, but given a nested loop it is only possible to break out of the inner loop, not the outer one. (The same problem arises with "anaphoric if", the version of if that binds the variable it to the value of the boolean expression.) I think such examples should be avoided. The define/who is a safe but trivial use (that could be accomplished using syntax parameters, I think). Another reasonable use is the CL-style variant of define-record-type in which the names of the constructor, predicate, accessors, and mutators are manufactured for you; a simplified example might be pedagogically useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions