t modern systems make this *much* easier and
more practical. And you don't need *any* magic to display the boxes.
So, when will you be implementing a prototype :-) ?
--- David A. Wheeler
--
Check out the vibrant
if the developer
can't easily "see" what the code actually *is*. I think experimentation would
be necessary.
This probably wouldn't be too hard to prototype in an editor - I'd love to hear
if you give it a try.
--- David A. Wheeler
-
>I suppose I could define a function that swaps the first 2 arguments
>then
>evaluates. In newlisp, this won't cause any slowdown.
Curly-infix does a little more than that. Feel free to steal its code, it is
under the MIT license.
If there are only three arguments, then it does indeed just swa
posed* to be, as long as the underlying Scheme is. It probably hasn't
been adequately tested that way, but if it's not, it's a bug and needs to be
fixed.
--- David A. Wheeler
--
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss
On September 13, 2016 7:22:55 PM EDT, Alan Manuel Gloria
wrote:
>On Tue, Sep 13, 2016 at 8:11 AM, David A. Wheeler
>
>wrote:
>
>>
>> >4. Backquotes "invert" the use of a symbol: foo is a prefix symbol,
>> >`foo`
>> >is an infix symbol; whil
>4. Backquotes "invert" the use of a symbol: foo is a prefix symbol,
>`foo`
>is an infix symbol; while + is an infix symbol while `+` is a prefix
>symbol.
How will you identify quasi quoting? Or do users simply have to use the full
name quasiquote ?
--- David A.Wheeler
---
Fyi, I've been implementing a library in common lisp using sweet expressions.
It is not quite ready for prime time, but you might find it amusing here:
https://github.com/david-a-wheeler/cl-metamath
--- David A.Wh
That's a cool approach. That said, I suspect trying to define precedence rules
will be a pain in the butt. There is a looming problem if different forms have
different presidence rules.
You might be better off three defining precedence rules for a subset of
operations, and then just requiring p
expressions are one
solution,
and the wisp developers have created another.
But you have to consider the general case. If you limit yourself to
symbols with fixed meanings, there are other languages that already do the job.
If you're going to use a Lisp, it should be because Lisp provides some
advantage to you.
--- David A. Wheeler
--
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss
ions from the GUI to the underlying representation.
You're certainly welcome to try some things out - I'm a little skeptical that
it's worth
the work, but the proof is always in the doing.
--- David A. Wheeler
---
Fyi, there is an interesting s-expression visualization tool here:
https://github.com/ympbyc/s-exploration/
--- David A.Wheeler--
___
Readable-discuss mailing list
Readable-discus
"Readable" library version 1.0.9 is now available!
It has various minor changes.
--- David A. Wheeler
--
___
Readable-discuss mailing list
Readab
I plan to release an updated "readable" library, based on the current
development version.
The changes are relatively small, and most of the changes are for Common Lisp.
If there are any issues, please post quickly.
Thanks!
--- David
le-sweet) with:
(eval-when (:compile-toplevel :load-toplevel :execute)
(readable:enable-sweet))
Once QuickLisp picks up the update, the problem should disappear.
--- David A. Wheeler
--
Download BIRT iHub F-Type - T
me, but I want to know if it works for you.
If it *does* work, then the next step is to decide what to do about it longer
term.
I certainly welcome comments from someone else.
But let's get Alexander Dunn back to doing good things, first,
and we then can decide how to make sure no one el
lisp.
>
On first blush, this looks like missing 'eval-when' clauses in the "readable"
package.
--- David A. Wheeler
--
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate
I can reproduce on Linux using:
mkdir /home/dwheeler/local-projects/help
... unzipped and put .lisp, .asd, etc. in that directory ...
sbcl
(push #p"/home/dwheeler/local-projects/help/" asdf:*central-registry*)
(ql:quickload "help")
--- David A. Wheeler
--
ccc
. ddd eee fff
ggg hhh
=>
(foo bar (aaa bbb ccc) ddd eee fff (ggg hhh))
On November 28, 2014 5:59:14 AM EST, "Jörg F. Wittenberger"
wrote:
>Am 27.11.2014 um 20:03 schrieb Arne Babenhauserheide:
>> Am Donnerstag, 27. November 2014, 08:47:49 schrieb David A. Wheeler:
&g
k:
aaa bbb . ccc
=>
(aaa bbb . ccc)
And the following would still be an error:
aaa bbb . ccc ddd
On November 27, 2014 6:04:47 AM EST, "Jörg F. Wittenberger"
wrote:
>Am 26.11.2014 um 23:32 schrieb David A. Wheeler:
>> This is a request for comment:
>> In sweet-ex
oo bar aaa bbb ccc).
A "." with a single n-expression is interpreted this way now. Currently, it's
illegal to have more than 1 n-expression on a line; this change would relax
that rule.
Anyway, thoughts welc
David A. Wheeler:
> > If wisp interpreted neoteric-expressions by default,
> > then many more expressions work in both systems...
On Fri, 21 Nov 2014 22:38:13 +0100, Arne Babenhauserheide
wrote:
> That’s true, but then lines with a single element would be treated
> different
problem.
Let me think about it.
On November 21, 2014 4:38:13 PM EST, Arne Babenhauserheide
wrote:
>Am Mittwoch, 19. November 2014, 18:34:25 schrieb David A. Wheeler:
>> It's possible to write code that is interpreted *identically*
>> on both wisp and sweet when indentation i
a symbol,
e.g., a number, then I write a normal list, e.g., '(1 2 3).
The pretty-printer exploits this; if something is a symbol, and the list
is not too long (e.g., 16 items or so), it's presented in f(...) format.
So while neoteric-expressions provide two ways to write something,
in p
cl to use the readtable-case invert setting.
* Added "math.slisp", a symbol math simplifier in Common Lisp
that demonstrates the readable notations.
--- David A. Wheeler
--
Download BIRT iHub F-T
tion.
We both agree that there's a need for a Lisp syntax that is
general and homoiconic, and that indentation can help.
We differ on how to best exploit that, that's all.
Thanks.
--- David A. Wheeler
--
I intend to update the 'readable' library soon. It fixes a bug in the Common
Lisp
sweet-expression reader, and adds an example "math.slisp" Common Lisp demo.
If you have last-minute comments, please post!
the wisp semantics, using a neoteric expression at
the *beginning* of a line
would be especially confusing. But not everything is at the beginning of a
line, and using them
afterwards would (I think) be sensible). E.G.:
sqrt cos(a) sin(a)
--- David A. Wheeler
readable (using read
> wherever possible).
Very cool! Have you considered making neoteric active by default as well?
Then you can do:
stuff cos(a)
--- David A. Wheeler
--
Lisp implementations as-is, though it's been tested more on clisp and
sbcl.
--- David A. Wheeler
--
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge
antics of {...} would increase its likelihood of acceptance in Clojure.
Also, the BDFL of Clojure objected to *any* infix support a few years ago.
Don't know if that's still tru
at's only useful on Windows but seems to be
gracefully handled in many cases. I found that vim quietly keeps the UTF-8 BOM
if it's there, and I suspect other applications do the same.
There's no doubt that it is easier to use ASCI
g, as discussed here:
https://stackoverflow.com/questions/1431008/enabling-utf-8-encoding-for-clojure-source-files
--- David A. Wheeler
--
___
Readable-discuss mailing list
R
etters).
《x + 1》 : Left/right double angle bracket, U+300a/U+300b. Chinese, so they are
"full width" (and thus space odd with western letters).
--- David A. Wheeler
--
___
t is not as nice as {{a + b} > {c * d}}, but I don't see a nicer alternative
unless they're willing to use non-ASCII pairing characters (!).
In Clojure [...] and (...) have a different meaning, but it seem
FYI, I have posted a simple math expression simplifier written in Common Lisp.
It is written using sweet-expressions and itself reads and writes
sweet-expressions:
http://sourceforge.net/p/readable/code/ci/develop/tree/math.slisp
--- David A.Wheeler-
Interesting thought though.
You can model many other things by creating a macro that passes the parameters
through it.
--- David A. Wheeler
--
___
Readable-dis
Not at all. The whole point is to have a syntax that is general, and not tied
to a particular semantic. Clearly it needs to be useful for a given semantic,
but not tied to it.
On October 26, 2014 10:43:17 PM EDT, John Cowan wrote:
>David A. Wheeler scripsit:
>
>> In Clojure, &q
ible to embed it as part of the reader.
The Common Lisp implementation does this for all tiers, and SRFI-105 is now
built into guile (at least).
--- David A. Wheeler
--
___
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss
g readable
notations
(Scheme already had this).
The QuickLisp version should automatically update when they do their package
updates.
Enjoy!
--- David A. Wheeler
--
Comprehensive Server Monitoring with Site24x7.
Monitor
The text itself is written in Markdown.
--- David A. Wheeler
Writing readable expressions
The "develop" branch includes additional procedures to print expressions using
these readable notations, so you can easily print these notations as well as
read t
circle t).
The current implementation handles atoms (e.g., numbers and symbols) and conses,
though not other Common Lisp datatypes (yet).
--- David A. Wheeler
--
Comprehensive Server Monitoring with Site24x7.
Monitor 10 se
incredibly weird case. That said, we should gracefully
handle it.
The fix turns out to be trivial, and is included below for your amusement.
Basically, procedure "it-expr-real" didn't handle EOF-without-EOL gracefully.
I expect th
"filename.slisp".
If it used #'function, it should continue to work. Sorry that you *have* to
use -C,
but the semantics of #' differ between Scheme and Common Lisp, so the
"sweeten" program has to know that you're using Common Lisp semantics.
--- David A. Whee
expected text after
> n-expression.
>
> Code can be found here
>
> When I add a newline at the end of the file, all works well again. I'm using
> GNU CLISP 2.49.
I've been unable to reproduce the bug using clisp version 2.48.
Your code works as expected on my systems.
C
Are you using the -C option in sweeten? By default, sweeten assumes scheme
syntax. You need -C so that it knows that you are processing Common Lisp
On October 4, 2014 10:00:23 AM EDT, martijn brekelmans
wrote:
>I'm new to lisp and I thought using readable would be a great bridge
>for learning
Fyi: we got a nice email, below, and I got permission to share it.
Original Message
From: Yves Cloutier
Sent: September 15, 2014 4:57:21 PM EDT
To: dwhee...@dwheeler.com
Subject: Readable Lisp
Hello David,
I just came across your Readable Lisp page and wow, I'm sold!
I'm get
in on guile 1.6. The
code is *written* with modern Scheme, but it tries to detect guile 1.6 and then
patch as necessary.
--- David A. Wheeler
--
Open source business process management suite built on Java and Eclipse
Turn
eparate packages, but I want people to be able
to
bring them into their local namespace without problems.
--- David A. Wheeler
=
Output routines for readable notations.
Use *print-notation* to decide what notation to use when writing.
So
/readable/wiki/Install-howto/
Website for all other information:
http://readable.sourceforge.net/
Enjoy!
--- David A. Wheeler
--
Open source business process management suite built on Java and Eclipse
Turn processes into
" in the deployed code, but only if necessary).
If anyone else could test it, that'd be great! I've tested this on several
different systems.
Also, patches to remove the warnings generated by guile 2.0 (listed below)
while not interfering
with other Schemes would be gre
ound it or even if it's something
> one could solve within the spec, but it just bit me, so I thought I'd
> mention it.
Thanks. Anyone have suggestions?
--- David A. Wheeler
--
Open source business pro
slipped through, but obviously it did, sorry about that.
If you could confirm that it works on *your* system that'd be great.
This is a serious problem, and I'd like to release a new version soon, but
I'd rather make sure that i
out -b develop origin/develop # Set up and switch to "develop" branch
autoreconf -i
Then configure, build, and test as usual:
./configure --prefix=/usr
make
make check
--- David A. Wheeler
--
Open source b
I don't have a guile 1.6 handy, but I do have guile 1.8. In 1.8, this works:
(case #\a (else (display "hi")))
yet this fails:
(define else #t)
(case #\a (else (display "hi")))
and I suspect the same would be true
oftware/guile/old-news.html),
over 8 years ago. Perhaps more importantly, GNU Guile 2.0.0 was released on
2011-02-16.
That's enough time for most people to have updated beyond 1.6, and over time
I expect that even fewer and fewer people will care
dern Scheme" while users of the
old guile version 1.6 get working code.
--- David A. Wheeler
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with
Drat. What do you suggest?
On June 24, 2014 5:28:39 PM EDT, Alan Manuel Gloria wrote:
>On Mon, Jun 23, 2014 at 3:41 AM, David A. Wheeler
> wrote:
>> Version 1.0.2 of the "readable" package is now available!!
>>
>> It's a collection of small tw
age
changes; I view avoiding incompatible language changes as critically important.
Below is the ChangeLog entry for this version, which describes the highlights.
If you want more detail, "git log -p" will tell all.
--- David A. Wheeler
ChangeLog for version 1.0.2:
* Various mi
ast, I *think* I fixed it.
Was there something else?
--- David A. Wheeler
--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source
e a test case and
another
two improvements of sweet-run.
Does anyone have any other changes before a new release?
--- David A. Wheeler
--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find Wha
ter trying it out a little bit I'm not sure I really want to create Lisp
source files that have to undergo text processing. So although I started that
discussion months ago, I doubt I'll go that direction... so there's no
particular reason to wa
ut in the cold. But if we can make things
better that'd be great.
--- David A. Wheeler
--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC
b a bunch of code and try to reformat it this way. I did
that a *LOT* to create SRFI-110; a lot of syntax that SEEMS like a good idea
doesn't actually work well with real code. And while simplicity is a *great*
goal, too simple is its own problem. All we *really* need is 1 and 0; anythi
whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tag-open-state
--- David A. Wheeler
--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
• 3 signs your SCM is hindering your pr
> David A. Wheeler scripsit:
> > This would mean that {* x *} would be interpreted *differently*
> > by a curly-infix reader (or a neoteric reader) compared to a
> > sweet-expression reader.
On Fri, 9 May 2014 13:37:04 -0400, John Cowan wrote:
> I think that's a
kinds of warnings.
Hmm, I don't know of any reason they need to stay.
I'd probably comment out appende, instead of removing it, just
in case it has to return someday.
--- David A. Wheeler
--
Is your legacy SCM s
ion is always useful.
It's not clear that it'd be as easy to tweak the current Common Lisp
implementation.
The sweet-reader, once it sees "{", immediately dispatches to the reader until
}.
You might need to insert some additional logic to ensure that it doesn't do the
reordering
uot;.
Yes. Which means you could write it, and then use some preprocessor to
transform it into valid XML (or use a tweaked XML processor that interpreted it
specially).
--- David A> Wheeler
--
Is your legacy SCM syste
Practically everyone's fonts have lots of
glyphs (though maybe not ALL the glyphs you want!).
> After all: If I have to deviate from the spec, it does not matter how
> much. The hardship of maintaining an implementation remains.
Some deviations are a lot easier to implement or
of sweet-expression
readers:
1. The Scheme one (tested mostly with guile)
2. Common Lisp
3. ANTLR/Java implementation (primarily for grammar analysis).
Anyone can always implement another. We want it to be as easy as possible
to implement it, while limiting the difficultie
ts
I'm not sure what the best symbols would be... we could try them out
on many systems to see how they look.
These could be considered synonyms, as extensions to the existing system.
--- David A. Wheeler
--
Is your l
#x27;cond' in lieu of 'if' because I liked the look of having
> > an 'else'.
>
> Yes, the "old" syntaxes like that tend to be very pretty in indentation
> syntax.
I think "if" looks great:
if {x < y}
! x
! y
Obviously if you want a *keyword* t
That is awesome! Thanks for letting us know!
Mike Gran wrote:
>Hi. I thought I'd take a stab at using your readable project
>
>Result is attached. It is a process manager: a structure holds
>a list of functions and data and call the functions as a unit.
>Functions that return #f are removed fr
port the failing character, ' in this case).
This was never specified in SRFI-110 (or Scheme), so it's not a spec change...
it's just a way to more strict in a standards-compliant way.
--- David A. Wheeler
; the main code at the right time.
Something like:
=
#!/bin/env sh
# $1 is the type to generate.
case "$1" in
GUILE)
echo "..." ;;
*) echo "..." ;;
esac
cat kernel.scm
=
A completely different approach is a cpp-like tool.
I've cobbled together an awk imple
> David A. Wheeler scripsit:
> > What do you think x'x *should* mean? That's incredibly ugly!
On Thu, 5 Dec 2013 13:08:53 -0500, John Cowan wrote:
> Its meaning is specifically left up to the implementation. Apostrophe
> is neither a (required to be treated as part o
quot; they suddenly become part of a symbol. That's
> all rather confusing and causes so much incompatibility.
>
> Its this really intended or just an oversight?
What do you think x'x *should* mean? That's incredibly ugly!
--- David A. Wheeler
--
n the whole thing could be in one file,
and generate variations for different purposes. For those Schemes with
cond-expand, we could put them in one file, so we wouldn't have to
generate too many files.
--- David A. Wheeler
---
the implementor of a repl. But for
> the default it just does not feel right to me.
Okay. An easy approach would be to raise an exception on error,
and add an option to permit the current behavior (catch and retry).
That's an interface change, but the SRFI doesn't define specifics
asic approach (using "guile" as the list).
Here's hoping that R7RS, especially R7RS-large, will make it
possible to unify the islands. I think Scheme would be more
compelling if people could actually work together :-).
--- David A. Wheeler
--
> David A. Wheeler scripsit:
> > How about cond-expands at the beginning to handle much of the shimming,
On Mon, 25 Nov 2013 12:08:47 -0500, John Cowan wrote:
> As of the last time I looked, cond-expand wasn't supported by Racket,
> Scheme48/scsh, Larceny, Ypsilon, S7, or S
ating.
Well, it actually consumes text until it hits a blank line.
> Should this become yet another config option for the code, or should we
> simply resort to the more "standard" behavior and error out via srf
the beginning to handle much of the shimming,
followed by clean code, and separate files to create modules and include them?
That should be fairly widely available (I hope!).
--- David A. Wheeler
--
Shape the Mobile Ex
e system. That assumes that
type systems like Chicken and Racket accept the results of macros.
But *can* we use macros to generate "(: ...)" type declarations?
Should we?
--- David A. Wheeler
--
Shape th
t;.
We could rename "let-splitter" to "readable-let-splitter",
and "no-values" to "readable-no-values", to reduce the
risks of namespace issues. I'd hate to use something other ":".
--- David A. Wheeler
P.S.:
Here's define-syntax in
> to get around would be making those settings port specific. But I'd
> rather like to keep those diffs size down.
Smaller diffs sounds awesome to me!!
--- David A. Wheeler
--
Shape the Mobile Experience
e definitions to make it work... I just
want to minimize it, and document why there's a variance when it happens.
> As I said, busy by now. Maybe next week if things go well.
Okay! I look forward to it. Thanks so much for your time.
--- David A. Wheeler
-
or R6RS permits them.
Yeah, and I knew better too.
In any case, I think this should be fine:
(string->symbol "+++CL-QUASIQUOTE-abbreviation+++")
--- David A. Wheeler
--
Shape the Mobile Experience: Free
mally use the same name as per the grammar.
We could do that if it's important to port to rscheme,
I just want to know why before making the change.
I presume you had a reason; if so, we need to
document why this is an exception to the naming convention.
Basically, just add a comment at the defi
ther cruft" into the library's importer.
I may be missing something obvious, suggestions welcome.
Otherwise, at least one of those ideals will have to give, hopefully
as minimally as possible.
--- David A. Wheeler
---
ity the invoker imports).
I will say that a nontrivial amount of the guile stuff is interrelated,
so I fear this approach may make it harder follow the guile portion.
But maybe not. The obvious approach is to try and see.
David A. Wheeler
--
> Am 18.11.2013 15:25, schrieb David A. Wheeler:
> > On Mon, 18 Nov 2013 13:23:32 +0100, "Jörg F. Wittenberger"
> > wrote:
> >
> >> In a first attempt to feed the source to some other Scheme I went ahead
> >> and sent it to the rscheme c
return no values or undefined
> values type-annotated as returning undefined.
Thanks! I had to tweak them, but we now use (no-values).
Note: Yesterday I added annotations for some of the procedures
you didn't annotate.
--- David A. Wheeler
---
agree
on pretty much anything when it comes to modules.
--- David A. Wheeler
--
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenalin
ntation. In practice, most people don't futz with
these settings (except at program begin), so it's worked fine.
--- David A. Wheeler
--
DreamFactory - Open Source REST & JSON Services for HTML5 &
"fake port"s to be
a temporary shim for certain cases, not something we end up using
everywhere, but I think you're right that it's plausible.
--- David A. Wheeler
--
DreamFactory - Open Source REST &am
unfortunately; guile won't recognize it.
I suspect what we should do is right there temporarily
have guile use prefix keyword notation (:select), using
something like (read-set! keywords 'prefix), and then restore
https://sourceforge.net/p/readable/code/ci/develop/tree/src/kernel.scm?format=raw
Note that the "develop" branch is what changes in development,
while the "master" branch holds final distributed versions.
--- David A. Wheeler
-
ic to make guile accept it, oddly enough.
(*grumble* default stack too small *grumble* macro weirdness *grumble*.)
--- David A. Wheeler
--
DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
OAu
> David A. Wheeler scripsit:
> > I like this idea. In a few places this patch changes return values
> > to intentionally return (values)... which is also okay by me.
On Sun, 17 Nov 2013 20:33:16 -0500, John Cowan wrote:
> For the record, I've never been a fan of returni
1 - 100 of 773 matches
Mail list logo