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 <> 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

    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

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