Arc Forumnew | comments | leaders | submitlogin
1 point by Pauan 4277 days ago | link | parent

A quick note if you're migrating old code to the new version: the "parameter" macro is gone. Use an ordinary variable and "w/" instead. In other words, rather than doing this:

  (parameter foo ...)
  (w/foo ...)
Do this:

  (= foo ...)
  (w/ foo ...)
Also, "=" still works like it does in Arc, but I recommend using "var" rather than "=", because it's hyper-static:

  (var foo ...)
  (w/ foo ...)
---

Another difference is that keyword arguments are no longer supported at all. This is because it's quite difficult to implement them properly, only a single function in Arc/Nu actually used them, and they're not backwards compatible with Arc 3.1, so I decided it wasn't worth it.

If you run into any other difficulties, feel free to post here and we can work it out.



1 point by Pauan 4276 days ago | link

By the way, if you use "parameter" and can't be bothered to change to the new system, you can use this macro:

  (mac parameter (x y)
    (w/uniq (var body)
      `(do (var ,x ,y)
           (mac ,(sym:string "w/" x) (,var . ,body)
             `(w/ ,',x ,,var ,@,body))
           ,x)))
Why didn't I just include it in Arc/Nu? Because I think the new system is better, so in the long run I really do want people to switch to the new system.

-----