Arc Forumnew | comments | leaders | submitlogin
3 points by highCs 2857 days ago | link | parent

Nice. You made ('(1 2 3) 0) working? Or its only working when using ssyntax (ie array.0)?


4 points by malisper 2857 days ago | link

That's only ssyntax. a.b is rewritten as (get a b) where get is a generic function. You may be able to use set-funcallable-instance-function to get something closer to what arc supplies. Also there are a lot of edge cases with the ssyntax since you have to be within a w/ssyntax block. There is one included in def, so you can use ssyntax in function definitions, but you can't use it at the toplevel.

-----

2 points by highCs 2856 days ago | link

An idea would be to have an arc macro that compile arc code.

  (arc :l "myprogram.arc")
  (arc :e (f:g 3.14))

-----

2 points by akkartik 2857 days ago | link

Interesting. I think Wart supported ssyntax at the toplevel.

-----

2 points by akkartik 2856 days ago | link

Yup:

  $ git clone https://github.com/akkartik/wart
  $ cd wart
  $ git checkout sbcl
  $ ./wart
  wart> car.nil
  nil

-----

1 point by highCs 2855 days ago | link

Gonna have to take a closer look at wart.

-----

2 points by akkartik 2855 days ago | link

I wouldn't spend too much time on it. malisper truly has the right idiomatic approach with packages. I was mostly just flailing around with the little bit of Common Lisp I understand.

-----