Paul Graham's Arc is released today... what is the long term impact? - lisp

This is a discussion on Paul Graham's Arc is released today... what is the long term impact? - lisp ; På Sun, 03 Feb 2008 14:47:00 +0100, skrev Pascal Costanza <pc@p-cos.net>: A few points that come to mind: Destructuring works differently and functions and let also allow destucturing. It is implemented in Arc. The syntax if different so it requires ...

+ Reply to Thread
Page 11 of 25 FirstFirst ... 9 10 11 12 13 21 ... LastLast
Results 101 to 110 of 250

Paul Graham's Arc is released today... what is the long term impact?

  1. Default Re: Paul Graham's Arc is released today... what is the long term impact?

    På Sun, 03 Feb 2008 14:47:00 +0100, skrev Pascal Costanza <pc@p-cos.net>:

    A few points that come to mind:

    Destructuring works differently and functions and let also allow
    destucturing.
    It is implemented in Arc.

    The syntax if different so it requires different parsing.

    (let x 5 (pr 5))
    (with (x 5 y 6) (prf "X=~A,Y~A~%" x y))

    prf is a subset of format implemented in arc.

    Macro processing is implemented in arc.

    You seem to have glanced at ac.scm and jumped to conclusions.
    The real work is in arc.arc .

    Also the you seem to miss the point. The issue isn't so much which
    features to add.
    It is to provide a simpler language which is terse but doesn't loose any
    of scheme/CL's power.
    The real effort is in determining what could be removed. The code has been
    continually rewritten to simplify/tersify the language and also the
    implementation. It is not easy to come up with a simple yet complete
    language.

    define-condition and defclass syntax doesn't jive well together with the
    terse original lingo car, cons, cond, map etc.. In that sense it is a
    attempt to get closer to the language originally envisioned by McCarthy.

    --------------
    John Thingstad

  2. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Sun, 03 Feb 2008 15:51:59 +0100, Pascal Costanza wrote:

    > Eli Barzilay wrote:
    >> Pascal Costanza <pc@p-cos.net> writes:
    >>
    >>> I seem to be missing something very important,

    >>
    >> I think that the best thing you should do is follow Kenny's advice and
    >> use it (then look at the sources).
    >>
    >>
    >>> so let me try to rephrase this as a question: Is there anything in Arc
    >>> that can't be implemented as a plain thin library on top of
    >>> (sufficiently powerful) Scheme or CL implementations?

    >>
    >> At least with MzScheme, it is not implemented as a library, but rather
    >> as a compiler. It reads each sexpr, translates it to MzScheme code,
    >> then evaluate the result.

    >
    > I wasn't interested in how they implemented the syntactic sugar. I was
    > interested in whether it is more than syntactic sugar.


    Arc has a couple of neat ideas (the building of the language from
    'axioms' and funcallable containers), and the type system and building
    the language/library up using set+annotate is kind of fun (arc.arc). My
    personal preferences aside, it's a capable lisp, it's fun to use, but
    there's nothing innovative or earth-shattering.

    As an aside, i've never really been a fan of pg's style, but this is just
    horrible imo:

    (define (ac-mac-call m args env)
    (let ((x1 (apply m (map ac-niltree args))))
    (let ((x2 (ac (ac-denil x1) env)))
    x2)))

    That's the code to call a macro-function and compile the expansion. For
    someone who goes on about brevity this and concise that .. WTF! Drop
    those lets!

    (define (ac-mac-call m args env)
    (ac (ac-denil (apply m (map ac-niltree args)) env))

    Cheers,

    drewc





    >
    >
    > Pascal



    --
    Posted via a free Usenet account from http://www.teranews.com


  3. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Jan 30, 1:12 pm, "John Thingstad" <jpth...@online.no> wrote:
    > På Wed, 30 Jan 2008 20:42:31 +0100, skrev <attila.lend...@gmail.com>:
    >
    > my biggest grievance in CL is multiple-value-bind.
    > Passing variables on the stack is something that is common and should be
    > dead simple.
    > I find the syntax alone makes me think twice about using it.


    I've always hated it too. Try my version of the LET macro.

    http://common-lisp.net/project/misc-extensions/

    With it you can say

    (let ((val1 val2 (form-returning-two-values)))
    ...)

    -- Scott



  4. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Feb 4, 6:53 am, Scott Burson <FSet....@gmail.com> wrote:
    > On Jan 30, 1:12 pm, "John Thingstad" <jpth...@online.no> wrote:
    >
    > > På Wed, 30 Jan 2008 20:42:31 +0100, skrev <attila.lend...@gmail.com>:

    >
    > > my biggest grievance in CL is multiple-value-bind.
    > > Passing variables on the stack is something that is common and should be
    > > dead simple.
    > > I find the syntax alone makes me think twice about using it.

    >
    > I've always hated it too. Try my version of the LET macro.
    >
    > http://common-lisp.net/project/misc-extensions/
    >
    > With it you can say
    >
    > (let ((val1 val2 (form-returning-two-values)))
    > ...)
    >
    > -- Scott


    Redefining let, eh. Why not using a new name something like let+ or
    whatever else?
    BTW lisp is PITA when you want to do call be reference programming,
    the C-ish styke with assignments.

    cheers
    Slobodan

  5. Default Re: Paul Graham's Arc is released today... what is the long term impact?

    Slobodan Blazeski <slobodan.blazeski@gmail.com> writes:
    > BTW lisp is PITA when you want to do call be reference programming,
    > the C-ish styke with assignments.


    Not true.

    It is trivial:

    (defun f (*y)
    (incf (ref *y)))

    (let ((x 1)
    (a (make-array 10 :initial-element 0)))
    (f (& (aref a (incf x))))
    a)

    --> #(0 0 1 0 0 0 0 0 0 0)

    ..
    ..
    ..
    ..
    ..
    ..
    ..
    ..
    ..
    ..
    ..

    With, for example, and out of the top of my hat:

    (defmacro & (place &environment env)
    (multiple-value-bind (vars vals store-vars writer-form reader-form)
    (get-setf-expansion place env)
    (when (cdr store-vars) (error "Can't expand this."))
    `(let* (,@(mapcar (function list) vars vals))
    (lambda (message &optional value)
    (ecase message
    ((get) ,reader-form)
    ((set) (let ((,(car store-vars) value))
    ,writer-form)))))))

    (defun ref (locative)
    (funcall locative 'get))

    (defun (setf ref) (value locative)
    (funcall locative 'set value))


    Also, you could have used group.google.com and found a lot of other
    posts about it, using the 'reference' or 'locative' keywords.


    --
    __Pascal Bourguignon__

  6. Default Re: Paul Graham's Arc is released today... what is the long term impact?

    Slobodan Blazeski <slobodan.blazeski@gmail.com> writes:

    > On Feb 4, 6:53 am, Scott Burson <FSet....@gmail.com> wrote:
    >> On Jan 30, 1:12 pm, "John Thingstad" <jpth...@online.no> wrote:
    >>
    >> > PÃ¥ Wed, 30 Jan 2008 20:42:31 +0100, skrev <attila.lend...@gmail.com>:

    >>
    >> > my biggest grievance in CL is multiple-value-bind.
    >> > Passing variables on the stack is something that is common and should be
    >> > dead simple.
    >> > I find the syntax alone makes me think twice about using it.

    >>
    >> I've always hated it too. Try my version of the LET macro.
    >>

    >
    > Redefining let, eh. Why not using a new name something like let+ or
    > whatever else?


    Or "bind", perhaps?

  7. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    Paul Donnelly wrote:
    > Slobodan Blazeski <slobodan.blazeski@gmail.com> writes:
    >
    >> On Feb 4, 6:53 am, Scott Burson <FSet....@gmail.com> wrote:
    >>> On Jan 30, 1:12 pm, "John Thingstad" <jpth...@online.no> wrote:
    >>>
    >>>> PÃ¥ Wed, 30 Jan 2008 20:42:31 +0100, skrev <attila.lend...@gmail.com>:
    >>>> my biggest grievance in CL is multiple-value-bind.
    >>>> Passing variables on the stack is something that is common and should be
    >>>> dead simple.
    >>>> I find the syntax alone makes me think twice about using it.
    >>> I've always hated it too. Try my version of the LET macro.
    >>>

    >> Redefining let, eh. Why not using a new name something like let+ or
    >> whatever else?

    >
    > Or "bind", perhaps?


    Hey, that's faaaaaar too long... :-P


    Pascal

    --
    1st European Lisp Symposium (ELS'08)
    http://prog.vub.ac.be/~pcostanza/els08/

    My website: http://p-cos.net
    Common Lisp Document Repository: http://cdr.eurolisp.org
    Closer to MOP & ContextL: http://common-lisp.net/project/closer/

  8. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Feb 4, 10:07 am, Pascal Costanza <p...@p-cos.net> wrote:
    > Paul Donnelly wrote:
    > > Slobodan Blazeski <slobodan.blaze...@gmail.com> writes:

    [...]
    > >> Redefining  let, eh. Why not using a new name something like let+ or
    > >> whatever else?


    > > Or "bind", perhaps?


    > Hey, that's faaaaaar too long... :-P


    In honor of Arc, I think it should be called BND.

    Cheers, Pillsy

  9. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Feb 4, 2:59 am, Slobodan Blazeski

    > Redefining let, eh. Why not using a new name something like let+ or
    > whatever else?


    let-values
    let*-values
    letrec-values

  10. Default Re: Paul Graham's Arc is released today... what is the long termimpact?

    On Feb 4, 10:16 am, p...@informatimago.com (Pascal J. Bourguignon)
    wrote:
    > Slobodan Blazeski <slobodan.blaze...@gmail.com> writes:
    > > BTW lisp is PITA when you want to do call be reference programming,
    > > the C-ish styke with assignments.

    >
    > Not true.
    >
    > It is trivial:
    >
    > (defun f (*y)
    > (incf (ref *y)))
    >
    > (let ((x 1)
    > (a (make-array 10 :initial-element 0)))
    > (f (& (aref a (incf x))))
    > a)
    >
    > --> #(0 0 1 0 0 0 0 0 0 0)
    >
    > .
    > .
    > .
    > .
    > .
    > .
    > .
    > .
    > .
    > .
    > .
    >
    > With, for example, and out of the top of my hat:
    >
    > (defmacro & (place &environment env)
    > (multiple-value-bind (vars vals store-vars writer-form reader-form)
    > (get-setf-expansion place env)
    > (when (cdr store-vars) (error "Can't expand this."))
    > `(let* (,@(mapcar (function list) vars vals))
    > (lambda (message &optional value)
    > (ecase message
    > ((get) ,reader-form)
    > ((set) (let ((,(car store-vars) value))
    > ,writer-form)))))))
    >
    > (defun ref (locative)
    > (funcall locative 'get))
    >
    > (defun (setf ref) (value locative)
    > (funcall locative 'set value))
    >
    > Also, you could have used group.google.com and found a lot of other
    > posts about it, using the 'reference' or 'locative' keywords.
    >
    > --
    > __Pascal Bourguignon__


    Cool thanks

    Slobodan

+ Reply to Thread
Page 11 of 25 FirstFirst ... 9 10 11 12 13 21 ... LastLast