Skip to content

Improve/Configure MAL compatibility .. #7

@skx

Description

@skx

I made a token effort, aliasing "length" as "count", but really I could do more for example the obvious changes:

  • let -> let* - Note argument type is different here.
  • fn* will replace lambda.
  • defmacro!
  • def! same as set!

I could make a bunch of minor-changes, but I guess to be 100% sure that things are valid I should really run the self-hosted version of mal. That's a challenge because of the use of vectors/etc. However I can certainly pass the early parts of the test cases, I'm sure.

Close this when "almost everything" works, with clear exceptions (i.e. vectors).

  • Possibly have a configuration-flag for compatability? Possibly allow loading "yal mal.lisp real.lisp". Open question at the moment.
  • Perhaps the way to go is to have a "defalias" for some of this stuff. Though duplicating functions is simple enough, or duplicating case-statements on the golang side.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions