through to an infix macro
processor (which might not be used!). However, bad expressions are ALREADY
undetected by Lisp processors (Lisp doesn't do that kind of checking normally),
so this is nothing new :-).
--- David A. Wheeler
it never shows f(...), which I would
expect to be the COMMON case in most code.
Again, I think that a lot of basics should be done by the READER, since that
way all macros just automatically work.
--- David A. Wheeler
When comparing various syntax options, I find it helpful to try out various
code fragments to see if they make sense. So here are two other examples
I've worked out. I did this by hand, so there may be an error or two, but the
point is to look at it, to see if the results are
(This is from Alan Manuel Gloria, presumably it was meant to go to the list
instead of just me.)
On Dec 4, 2007 3:50 AM, David A. Wheeler [EMAIL PROTECTED] wrote:
Although I didn't like distinguishing f(...) and f{...}, re-looking at the
factorial example is starting convince me that it's
reasoning hard... so I don't think I should create that
special exception. NOT creating the exception will make it easier to code, and
to understand. This would mean that:
(a)(b) = ((a) b)
IE, call a to find out what function to call, then call it with parameter b.
--- David A. Wheeler
lists using {...}, and a prefix f{...},
manages to do quite a lot. See my examples for more.
--- David A. Wheeler
.
--- David A. Wheeler
with them. I can't
imagine anyone better-qualified than Egil to help us understand some things,
and if there's an issue, how to fix them.
--- David A. Wheeler
produces (a b q), instead of the
expected (a b) followed later by q.
* Sample implementation has various other bugs.
I've fixed the following bugs in the sample implementation:
; * 2007-10-15 David A. Wheeler dwheeler at dwheeler dot com
; - Changed t to #t (t is Common Lisp, #t is Scheme)
; * 2006
misinterpreted by the reader. So I suggest #2.
--- David A. Wheeler
reading (and execution)
of the previous command, making it CERTAIN that your output will be
out-of-sync. And I think it'd be a VERY bad idea for the syntax to vary
between interactive and non-interactive use... it's confusing, and makes
debugging rough.
--- David A. Wheeler
) is that it doesn't use
up any other characters; an interpreter can choose to use | as an ordinary
character, or yet something else, as it desires.
--- David A. Wheeler
. [...] is
actually part of Scheme R6RS, and since it's easy in Common Lisp to commandeer
{...}, they're often used that way.
--- David A. Wheeler
; this is a highly limited case, and may be
okay.
--- David A. Wheeler
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01
and ACL2, so I intentionally
avoided some Scheme capabilities.
--- David A. Wheeler
-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK win
version of the text.
--- David A. Wheeler
===
NewLisp
NewLisp is Lisp-like, general purpose scripting language, with an
implementation released under the GPL.
Original Lisp
Here is a sample from their Code patterns document:
(dolist (file-name (3 (main-args
spec including it.
I can be talked either way about the \ splice thing. The goal is to make easy
things easy, without too many rules. Is the extra \ rule helpful?
Neutral? More harm than good? I'd love to hear more feedback on it.
--- David A. Wheeler
, but if in the journey we find good stuff, then great!)
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
Well, I'd rather be implementing the reader, because that's what I
need to start working on my HDL-to-put-all-other-HDL's-to-shame. Any
other volunteers?
I'm happy to work together. However, I think it's important that (for now) the
reader be relatively portable among Schemes.
--- David
page at
https://sourceforge.net/p/readable/wiki/Solution/ gives the updated rule that
ANY expression works as the prefix.
I just modified the git repository code to implement this added a test to
check that it's implemented that way.
--- David A. Wheeler
expression.
...
My vote is Whitespace at toplevel DISABLES I-expressions.
I just implemented this in the git repository.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all
/code readable-code
Okay, that's good at least.
So: are git bundles e-mailed on the list OK?
I don't know; you could try and see. Or, you could just post it somewhere and
I can pull. The latter would probably be easier.
--- David A. Wheeler
. Or, it could
force a list in certain situations. Ideas?
The obvious question is what SYMBOL should be. I'm wondering if ~ would be a
better choice than \, since \ has a meaning in so many places.
--- David A. Wheeler
lists of lists (e.g., GROUP,
SPLIT symbol on its own line, whatever). I'm not as certain of ENLIST. I'd
feel better trying around different ideas for a short while first.
--- David A. Wheeler
--
Live Security Virtual
, and this gives a tool that we can use right now.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers
be happy with SPLIT without ENLIST, and
give it a try?
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
as we can make it
happen (E.G., perhaps an SRFI or similar for Scheme, perhaps ASDF for Common
Lisp, etc.). Some stuff like curly-infix is especially easy to adopt; we may
be able to get our noses into the tents in some places :-).
--- David A. Wheeler
Alan Manuel Gloria:
Currently fails!!
(;comment
)
Results in:
(#{}#)
Expected result:
()
Looks like a bug in modern.scm?
Will dig, probably tomorrow. Need to sleep.
Okay. I added that to the testsuite.
--- David A. Wheeler
Judging by the line-count savings, this is a huge win. In addition,
the description in the Readme is *much* shorter and simpler. The
entire section on exceptions is gone.
Joining this list has 'paid' for itself on the very first day. Many thanks!
Awesome! Glad we could help!
--- David
-expression processing with a space indent, so just
inserting a space on every line *ensures* compatibility with the
sweet-expression processing.
{This is a good question - I just added this discussion to the Rationale wiki
page.}
--- David A. Wheeler
is there for the same reasons, as well as consistency.
This is something we've been discussing recently.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's
it!
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security
this.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint
it out to a separate
my-eval function, so that it can be easily replaced/edited, and switch to
R5RS's version as a default (see below).
--- David A. Wheeler
=
--- a/sugar.scm
+++ b/sugar.scm
@@ -54,6 +54,10 @@
; these only exist in guile
(define sugar
support is now officially an absolute requirement.
We need to make sure you don't have to hack it locally to keep making it work
for you. We can live with you *temporarily* needing a local hack, but that's
not okay long-term.
--- David A. Wheeler
Kartik Agaram:
many Lisps already do this, and this provides a simple escape mechanism..
It doesn't work on racket or sbcl, just guile. Any others?
I'm pretty sure the answer is yes, but I can't find any record on what they
were. I've changed the text to say guile instead.
--- David
?
No, but I pointed to [Current] which has the same effect.
Now that I've started playing with the text myself, my value to this
group will start to drop for giving feedback as an outsider :)
Too late! You're no longer an outsider. :-).
--- David A. Wheeler
you can create its Scheme version:
make iformat.scm
and run it:
guile iformat.scm ugly beautiful
You can run make itest for a quick demo.
We could start with kennytilton's Cells library, just out of spite ^^
:-).
--- David A. Wheeler
. I don't want to spend a lot of time on it, but I know
that the third most important thing to getting a project off-the-ground is an
attractive website:
http://www.dwheeler.com/blog/2012/07/08/#internet-success
Number one is, unsurprisingly, actually working :-).
--- David A. Wheeler
(). I'd like to have better documentation
for each function (its inputs outputs), and I think it'll be EASIER to do
without clean().
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover
noted, again, doesn't
seem active.
http://www.crockford.com/javascript/scheme.html -- Can't even handle (define l
'(Put it in here))
Anyone have experience with these or others?
--- David A. Wheeler
--
Live Security
to handle Scheme rest arguments, but those are prefixed. IE:
foo(. rest)
is equal to:
(foo . rest)
And I think that follows simply from the usual rule that f(...) is equal to (f
...).
I'll go clarify the [Solution] page.
--- David A. Wheeler
.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint
achieve
rough consensus.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond
think for a first cut pretty printer we're better off creating a simple one,
based on the code we already have. After that, we can build something more
complex, possibly cannibalizing the first cut.
--- David A. Wheeler
=
ksi-pp.scm
http://www.koders.com/scheme
, and allow us to use symbols that start
with period (but aren't period) without problems.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat
parameters, so {3 + 4} can be on a line), and it doesn't have
any clue about common Lisp function names how they might be better formatted.
But it's enough to able to see what things look like.
--- David A. Wheeler
--
Live
that discussions on [Changes] as completed (let me know if I've
misunderstood something).
We are down to two (related) issues: GROUP/SPLICE/etc. and
period-as-indentation.
--- David A. Wheeler
--
Live Security Virtual
,
and the first thing *IT* does is get the char (which undoes any unread-char of
a period), so it shouldn't change much of the rest.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover
, can you accept #4 (period + space or tab as
indentation)?
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
, for clarity (all other abbreviations
are punctuation), but there's no implementation reason either have to be single
characters. Heck, Lisps already support multi-character abbreviations like
,@.
--- David A. Wheeler
of indentation - enabling us to detect indentation
screw-ups.
So I can be easily convinced to switch to consing period forcing consistent
indentation. What do you think?
--- David A. Wheeler
--
Live Security Virtual Conference
for those files.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
version. It's also a slightly
easier rule to describe.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
happy with the semantics the tool has currently in this case, which I
believe are exactly the same as SRFI-49. There's no loss of generality, just
add the group marker after the quote marker.
--- David A. Wheeler
.
I'm rather curious what Alan Manuel Gloria thinks about my \\ symbol idea,
which I believe eliminates the problems from slashification.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event
, since they are at
the same indentation level:
group a b
c d
=
(a b)
(c d)
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has
in their email.
Please speak up if there's someone like that. I try to avoid html emails --
until there's a genuine need for extra formatting.
Um, me for one :-).
--- David A. Wheeler
--
Live Security Virtual Conference
Just to confirm, presuming SPLIT semantics (which is what is currently
implemented) using \ as the SPLIT symbol:
\
a
b c
Shouldn't this be ((a (b c)))?
Yes, indeed, that's right. I think of this as \ starting a list with a
0-length function name.
--- David A. Wheeler
On 2012-07-19, David A. Wheeler wrote:
I'm rather curious what Alan Manuel Gloria thinks about my \\ symbol idea,
which I believe eliminates the problems from slashification.
Alan Manuel Gloria replied:
I still prefer \, but I won't object to \\.
I also won't object to ~ or !.
So if I
The current code now implements SPLIT using \\.
Please, experiment with it see how it works/looks.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security
(x) infix-operators
. . list? x
. . {length(x) = 3}
. . {length(x) = 6}
I think this is pretty clean, and I think it shows we're on the right track.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live
be, so I put the
cheap operations first. The memq does have to walk a list, but it's a
relatively short invariant list, so it's a known-bounded-time operation.
Yeah looks purty.
Cool!
--- David A. Wheeler
--
Live
strides in that
area, and I hope he will continue. I'm thinking we should merge files, that
would probably help.
Also, the code clearly it needs to be further packaged so that it's easy to
install use out of the box.
But this is still a good place to be.
--- David A. Wheeler
.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint
and make this all one module, we
can easily do that - just have a private interface for modern-expr. But I
think all modern-expr needs is the ability to read the unread char; that's
straightforward enough.
--- David A. Wheeler
-discuss.sourceforge.net/), and so on.
The full project name is currently Readable Lisp S-expressions see
(http://sourceforge.net/projects/readable/) but that's way too long.
--- David A. Wheeler
--
Live Security Virtual
.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security
? Comments? Like it? Hate it? Kindof neutral?
--- David A. Wheeler
Alan Manuel Gloria said:
Not if the indentation tracking finds a ., then fails to see a tab
or space after it. Then it's forced to have 2 characters overhead,
which the modern-expr reader must read back to find the symbol
)
(If I made a mistake, let me know.)
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can
that's okay.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
.
For sweet-expressions, my proposal is to accept all three characters (space,
tab, !) as an indent char. Since you can mix them, you can do stuff like use
bang-space-space as your conventional indent:
cond
! condition1(x)
! ! dothis()
--- David A. Wheeler
to write a program in
Cuniform, and we just happened to co-opt one of the most useful characters
for starting things in ancient Hittite! :-)
:-).
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live
to AVOID doing things the modern way? And
wouldn't you want to use a sweet notation? Just letters don't do that.
But that doesn't mean we shouldn't do it. What names would you propose for all
4 cases, and why?
--- David A. Wheeler
the names? Now's the
time.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
that preserve those advantages while
being easier to read.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
interfaces I outlined?
(^.^)v have fun!
:-).
If you have any particular name likes, or hates, let us know.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's
this one is, but okay.
As for the internal portability API, I think I also need to provide a
portable way to replace the reader - witness the hackery that goes on
to seamlessly replace Guile's reader on 1.6, 1.8 AND 2.0.
Magic!
Thanks for working on this, it's very promising.
--- David
what it looks like with sweet-expressions.
* I plan to *rename* sweet-filter to unsweetener. Now that we have
programs that can do sweet-traditional and traditional-sweet, that name is
not so clear (which one is sweet-filter? they are BOTH filters that involve
sweet-expressions!)
--- David
for use in writing or speaking. I think we should *not* provide both;
providing multiple names can help backwards compatibility, but we're not there
yet.
--- David A. Wheeler
--
Live Security Virtual Conference
.
But to address your concern, let's name the important symbols or characters
(SPLIT, GROUP, NON-WHITESPACE-INDENT), so that someone could say, Sweet
expressions, except that @@ is the SPLIT symbol or whatever.
David A. Wheeler
Author: Alan Manuel K. Gloria almkg...@gmail.com
Date: Tue Jul 24 06:07:27 2012 +0800
Put Unicode line endings into the portability layer.
Okay. The next-line char doesn't STRICTLY depend on Unicode, but that's a
reasonable default.
--- David A. Wheeler
Nah, I *like* autotools, they let me compile stuff on systems that
don't have autotools. It's the only build system I know that has that
property.
Okay, I'm autoconfiscating.
--- David A. Wheeler
--
Live Security
, and check for incompatibilities with 2.0.
Okay.
--_ David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can
a significant test case makes
it easier to refactor the code.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed
the autoconf'ed distro and the git
repository. E.G., I think it's time for the lab/ to go away. Any code
cleanups we can do would be great, too.
We can continue after that, obviously, but it'd be nice to have a milestone.
Comments?
--- David A. Wheeler
to do the same thing,
e.g., comments beginning with ;#! and ;#! could be output without the
leading ;. Then you could write shell scripts in a Lisp-like language, using
some existing tools.
--- David A. Wheeler
--
Live
:
=
;#!scsh -s
;!#
run cat(README)
=
Process this with:
./unsweeten demo.sscm demo
chmod a+x demo
(This begs to be set in a makefile)
Run doing:
./demo
It's not Common Lisp, but it is certainly a Lisp.
--- David A. Wheeler
the notation as resistant to accidents as I can,
but there are already so many constraints that they will creep in. Hopefully
not too many.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event
of the examples in make check.
Thoughts?
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond
or so, I want to read up alternatives and see if
there are other mailing list comments.
I want to do this setup only *once*, so we can focus on progress instead of
workflow issues.
--- David A. Wheeler
--
Live Security
it easy for *users* to get started,
it's also important to do.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how
] page.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include
... but hopefully we'll see even more commits :-).
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond
yields:
foo
bar
Should it? I think the intent here would be that it would become
something like:
foo bar
then
(foo bar)
Should I fix this? Is this indeed a bug?
I think it's a bug. It's certainly not what I would have expected. Please
*do* fix it!
--- David A. Wheeler
So prefixing define foo(x) $ ... should do just what you've written. And $
is *intended* help counter the endless march of indentation.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event
than the disease.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
everything
about the notation. It's a trade-off; I'm trying to stay less than 15 min
total.
--- David A. Wheeler
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security
* aren't significant, the semantics as designed are
clear, and are intentionally using that notation for ANOTHER purpose where it's
not as easy to use an alternative.
It's a good question. I'll update the rationale.
--- David A. Wheeler
need any
additional mechanisms.
Will fix the incorrect handling of multiline comments in the middle of
lines. They should only act as SPLIT when at the start of line, to
handle stuff like
That sounds right, too.
--- David A. Wheeler
1 - 100 of 390 matches
Mail list logo