Re: [Boost-docs] The beauty of LATEX

Subject: Re: [Boost-docs] The beauty of LATEX
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-10-23 11:57:22


on Sat Oct 22 2011, Joel de Guzman <joel-AT-boost-consulting.com> wrote:

> On 10/23/2011 7:49 AM, Joel de Guzman wrote:
>> On 10/23/2011 4:15 AM, Dave Abrahams wrote:
>
>>> Especially if you're inspired by S-expressions, I can't imagine any good
>>> excuse to invent a new syntax when lisp already has a syntax for this
>>> sort of thing. If we need to use square brackets instead of round ones
>>> for legacy (or other) reasons, that's fine, but I don't at all see why
>>> it makes sense to choose a syntax where of all things there's no outer
>>> set of parens around the entire
>>> function/macro/template/whatever-you-call-this-thing. Why not do this:
>>>
>>> [def foo[a] [a]]
>>
>> You are right Dave. I totally mixed it up! My concern was legacy
>> Qbk code. I wanted something that can be applied to legacy code
>> using simple grep. But I fumbled and mixed it up. I see that
>> the old syntax has the syntax you wrote! I'll fix it.
>
> Following scheme/lisp more closely, that should be:
>
> [def [foo a] [a]]

I don't think so, at least not for lisp. I don't know Scheme, but this
works in lisp:

  (defun identity (a) a) (assert (eq (identity 'bar) 'bar))
  (defun foo (a) (list a)) (assert (equal (foo 'bar) '(bar)))
  (defun foo (a) `(,a)) ; alternate spelling

> (Fine. That should still be grep-able).
>
> Now we have it very close to scheme including the dot notation
> for variable args. E.g.
>
> [decl [table title . rows]]

Dot notation doesn't mean variable arguments in lisp. It's a cons
operation.

    a . b == (cons a b)

> and lambda. E.g.:
>
> [lambda [x] [dup [x]]]

This one looks just like lisp to me.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

This archive was generated by hypermail 2.1.7 : 2017-11-11 08:50:41 UTC