Arc Forumnew | comments | leaders | submitlogin
1 point by bogomipz 5925 days ago | link | parent

One could also wish that (apply f args) could be written as (f . args). This makes perfect sense to me, even more so than (f @args), although logically they would mean the same.

The difference is that . is a notation for CONS, while @ may be used anywhere in a list. This means that (1 2 @others 3) cannot reuse others, and therefore shouldn't do so when the splice happens to be at the end either.

  (1 . 2) means (cons 1 2)
  (1 2 . foo) means (cons 1 (cons 2 foo))
  (1 2 @foo) is slightly more complicated as it needs to loop over foo