I have at various times had concrete evidence of the book being cited in
courses at, or directly used in, each of these institutions (obviously, not
necessarily currently):
Aarhus Universitet,
Adelphi University,
Allegheny College,
Ben Gurion University,
Brigham Young
For the (search engine) record:
No matter what I did, I couldn't get Aquamacs to take seriously my
request to put the file in UTF-8 format. So I switched from editing in
Aquamacs to editing in DrRacket to put on accented character in. When
I reloaded the file, Aquamacs was happy to edit in UTF-8,
What's the proper way to use accented characters in a Scribble
document? For instance, if I want a ä? Simply writing that character
results in the error
Package inputenc Error: Unicode char \u8: not set up for use with LaTeX.
on OS X using the default latex (/usr/texbin/latex).
Thanks,
Hi -- thanks for the report. However, you should be using plai-typed, not plai.
You can find plai-typed here:
http://cs.brown.edu/courses/cs173/2012/lang/
If you install and run with plai-typed instead of plai, you will find
that the colon-endowed syntax works just fine (I just tested the very
.
Greg
PS. As far as I know the GUI bindings do still work... :-)
On Tue, Nov 12, 2013 at 10:31 PM, Shriram Krishnamurthi s...@cs.brown.edu
wrote:
I think the core stuff will continue to work fine; I imagine the GUI
bindings have ossified by now.
You may actually find it useful to look
Elm was (partially) inspired by Flapjax, which is a direct descendant
of FrTime. So the Elm-like language for Racket _is_ FrTime.
Perhaps you have a different question? Maybe I've completely
misunderstood your question!
Racket Users list:
Hi Dan,
I don't think anyone is using FrTime, because nobody in the Racket
community really expressed much interest in it, so it didn't gain
enough momentum. I concluded that the kind of person who likes Racket
is perfectly happy with Racket's existing GUI libraries, and FrTime
was solving a
particular docs and/or code I should read (aside from the
basic docs online and your paper)? Any tips?
Philip Monk
On Tue, Nov 12, 2013 at 2:54 PM, Shriram Krishnamurthi s...@cs.brown.edu
wrote:
Hi Dan,
I don't think anyone is using FrTime, because nobody in the Racket
community really
Right. You should absolutely look at Matthew's materials. But also
note that Joe and I designed our course to be archival so that anyone
who wants to can re-run the course for themselves even after it was
over (as it is). So you may benefit from pursuing both.
Racket Users
Grant, what do you mean by government sanctioned? And why are you asking?
On Mon, Oct 7, 2013 at 2:38 PM, Grant Rettke gret...@acm.org wrote:
Hi,
Anyone used Racket or Bootstrap for a government sanctioned K-12
educational program?
Best wishes,
--
Grant Rettke | ACM, AMA, COG, IEEE
On Fri, Jun 21, 2013 at 2:57 PM, Todd O'Bryan toddobr...@gmail.com wrote:
Whoa! I had no idea that Shriram and the rest of the Rice group were
the impetus for the distillation/clarification and naming of The
Expression Problem.
To set the record straight, since this is a public forum:
We
Yaron, this summer my students, Kathi Fisler, and I built a block-based,
functional language with types (expressed as colors) and testing. It runs
in the browser, uses the WeScheme runtime and can express most Bootstrap
programs.
It needs more polish before we can release it to the world. We
Second edition, now newer and better, currently being written (but most of
the way there):
http://www.cs.brown.edu/courses/cs173/2012/book/
On Sun, Nov 4, 2012 at 9:55 AM, Asumu Takikawa as...@ccs.neu.edu wrote:
On 2012-11-02 12:21:25 -0700, geb a wrote:
I've been working with redex (a
Currently: indirectly, yes, directly, no. But I plan to write up some
material that will make the transition from PLAI 2/e to SEwPR.
Half the problem is one of notation, which can be explained.
But PLAI covers explicitly many things that SEwPR seewps under the rug by
virtue of assuming you
I'm trying to start using scribble/lp and ran into some issues.
1. When I switch a buffer from scribble/base to scribble/lp, if I have
no chunks I get an error. Why is this? It certainly isn't needed for
typesetting; for assembling code during execution, when there are no
chunk's why isn't it
It also appears that one cannot scribble a stand-alone scribble/lp
file: it produces
dynamic-require: name is not provided
name: 'doc
...
(This, for instance, is scribbling the very example in
http://docs.racket-lang.org/scribble/lp.html .) But scribbling the
wrapper seems to work fine.
If
The function phone-directory consumes a name, then produces/computes a
phone number.
On Sat, Sep 8, 2012 at 11:26 AM, Richard Cleis rcl...@me.com wrote:
I am writing documentation. What are acceptable words for the following
brackets?
The function f [what verbs are ok?] a name, then [what
I concur w/ Joe that there's something to be said for using returns
since you're presumably writing documentation that you want
non-Racketeer to read and immediately understand -- your goal here
(presumably) isn't to be pedantic. This is in contrast to a
programming or programming languages
, please post them here:
https://plus.google.com/117185293319274359863/posts/9rfginQ3w82
I look forward to seeing you in class!
Shriram Krishnamurthi, Instructor
Joe Gibbs Politz, Associate Instructor
Racket Users list:
http://lists.racket-lang.org/users
The Scribble language is a great instance of this, though
unfortunately there isn't yet really an easily accessible document
that lays out the argument crisply for a lay audience. But if you can
persist a little, try the Scribble ICFP paper.
Racket Users list:
Hi all,
We have until now never barred anyone from this mailing list. We like
to keep it that way. Eli Barzilay and I talk about such issues
periodically, and have been doing so a LOT lately.
Trolls are obviously problematic. We're starting to get unsubscribe
messages, which does not help --
On Fri, Dec 30, 2011 at 2:54 PM, Noel Welsh noelwe...@gmail.com wrote:
On Tue, Dec 27, 2011 at 9:26 PM, Galler lzgal...@optonline.net wrote:
I note that no one has discussed throwing a significant amount of physical
memory at the problem.
Empirically, is that because garbage-collection of a
Let's just agree to ignore the troll, please.
Racket Users list:
http://lists.racket-lang.org/users
Hi R. Noob,
Do the URLs of pages that use continuation
mechanism have to look ugly and cryptic?
Yes they do. The URLs are ugly *because* they are cryptic. They are
cryptic because it is a route to system security. If they were
pretty, people could guess them, and that would adversely affect
DSSSL (-:
(Since I believe Bigloo and/or Gambit implemented DSSSL, lurking in
their implementations is code that does this...)
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
Right. In other words, Racket would become a true scripting language. -;
On Tue, Nov 15, 2011 at 3:14 PM, Grant Rettke gret...@acm.org wrote:
On Mon, Nov 14, 2011 at 8:32 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
At Sun, 13 Nov 2011 21:00:55 +, nicolas.o...@gmail.com wrote:
Is there a
i do it in emacs usually if we are talking about being able to
evaluate chunks.
But Emacs is not an IDE. You began by complaining that DrRacket is
not more like other traditional IDEs, and making platform-specific
complaints. Is there ANY sense in which Emacs is more
platform-specific than
having said that, eminently sensible is in the eye of the beholder.
after all, racket didn't have static type checking for most of its
life, no? i am not saying it is or is not eminent in my own view, i am
pointing out that it is pretty subjective so you can't actually call
it eminently
Right. A Racket Declaration of Independence. (-:
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
On Nov 13, 2011, at 2:06 PM, Raoul Duke wrote:
apparently i can't higlight a sub-section of code and run just that.
When you do this in Eclipse, what exact steps do you follow? And what
does Eclipse do in response? Can you show an example?
Thanks,
Shriram
Why don't you spend a little time writing down your thoughts, and then
post them. Maybe there are things that you're just missing that are
already in there. Or perhaps you find what you want but the path to
getting there is unintuitive, and seeing the feedback will help
improve the user
http://queue.acm.org/detail.cfm?id=2068896
If you participate in a social media site, you may want to post or
upvote it (it's already on Hacker News).
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
so the tools
might let anybody do a new language, but the ability to use those
tools seems to me to be a whole 'nother kettle of fish?
Obviously, a tool can be used to produce both good and bad artifacts.
But the better the tool, the easier time the toolsmith has with the
basics, so the more
Here's a program:
#lang racket
(define (even? n)
(if (zero? n) true (odd? (sub1 n
(define (odd? n)
(if (zero? n) false (even? (sub1 n
Go to Language | Choose Language, click on Show Details, and at the
top-right, select Debugging and profiling.
Now run the program and in the
+1 on Windows for skull!
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
You're missing the
PLaneT: Installing ...
line!
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
I found this confusing when I first encountered it -- the patterns are
at the TOP of the page (but not linked from the match docs). Scroll
to the top and look for pattern in the BNF.
On Mon, Oct 31, 2011 at 3:16 PM, Jay McCarthy jay.mccar...@gmail.com wrote:
I'm missing why there are impersonators and chaperones for various
datatypes but not for lists. There's surely a good reason why, but I
am having trouble reconstructing what it might be. Anyone?
Shriram
_
For list-related administrative tasks:
Thanks to you and Sam -- I had wondered if the run-time system wasn't
partly driving this, and certainly chaperones on immutable data don't
make as much sense. But I don't see them on mutable lists either
_
For list-related administrative
John, have you run your audio stuff w/ world? How hard would that be?
On Wed, Oct 19, 2011 at 3:14 PM, Matthias Felleisen
matth...@ccs.neu.edu wrote:
No. -- Matthias
On Oct 19, 2011, at 7:59 AM, Yaron Minsky wrote:
Is there any support for playing sounds within the Universe teachpack?
I admire the consistency of this position - I really do - but we also have
check-error.
--
Pardon terseness and mistakes -- sent from phone.
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
How about a synonym instead? I propose Scheme. -;
On Tue, Oct 4, 2011 at 8:09 AM, David Van Horn dvanh...@ccs.neu.edu wrote:
On 10/1/11 2:51 PM, Neil Toronto wrote:
You know what would convince me the most? Find me a great name for the
new library that contains the word plot. It should be
Some of the other commenters in that thread point out a few big things
I missed, like Scribble.
Even more than Scribble is the fact that Racket enables Scribble to be
constructed in and then integrated into the language. The phrase a
much, much more expressive macro system is in your reddit
I have two different files that provide a function called isort.
One comes from untyped Racket and the other from typed/racket. I am
importing them thus:
(require [rename-in untyped-sort-server.rkt
(isort u:isort)])
(require [rename-in typed-sort-server.rkt
scribble but others must be run through
racket.)
Shriram
On Mon, Sep 26, 2011 at 8:25 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
At Sun, 25 Sep 2011 21:35:08 -0400, Eli Barzilay wrote:
50 minutes ago, Shriram Krishnamurthi wrote:
Does the scribble/text language work in 5.1.3? Here's the first
No problem, thanks for trying. For now I anyway intended to publish
only HTML output. What I immediately wanted was to periodically test
to make sure the eventual PDF will look okay, and the two-step --latex
option is good enough for that.
If whoever maintains Scribble/Windows would like to
Thanks, though I'm not sure that was my main point. Though I now see
that planet really is considered a whole language in its own right,
so I guess this red underlining is inevitable by the semantics.
Incidentally, for those who find this thread later, there's another
option you will may useful
I used different words than Matthias because we were trying to offer
somewhat different explanations of what is happening. You chose to
use his words in response to mine, which only confuses things further.
(There is, incidentally, a good reason why (+ 1 2) could, but does
not, evaluate to (+ 1
It depends on what kinds of compilers/interpreters they were trying to
build. A course of study for Fortran would like quite different from
one for ML would look quite different from one for JavaScript (though
there are of course many overlaps).
Shriram
It's just that I don't understand why you (i.e.
Racket implementers) choose Racket by default prints list this
way (different than all other lisps). I think this choice can confuse
[...] users who switches from different lisp
implementations [...]
Then it nicely accomplishes the task of
Ok, maybe this is not something that's important in other programming
languages, but it *is* important in lisps. As a lisp educator, how can you
*not* to teach this fundamental fact about lisp?
It's funny that here you're berating Robby, who's put more time into
different ways of printing than
Robby --
I don't know enough about how the internal drawing routine of DrRacket
works, so you could help clarify that.
In 2htdp/universe, the act of movement is represented by
reconstructing the entire scene. Of course, there may be sharing:
(define bg ... something complex ...)
;; at time 1
Time isn't the only measure. And in terms of space, I don't think
you're accounting for all of it.
When you make universe scenes bigger, you tend to see GC pressure.
This *suggests* to me that there is not a lot of sharing from one
display to the next; rather, an entire WIDTHxHEIGHT bitmap is
I'm trying to convert some old slatex'ed documents into scribble and
running into trouble. I don't seem to have a clear enough handle on
how to use codeblock.
I can, for instance, convert
\begin{schemedisplay}
foo
bar
\end{schemedisplay}
into
@mycode{
foo
bar
}
where
Thanks: that makes sense. But in that case, setting aside the
abstraction issue for a moment, could you explain why
@codeblock{
(define (f x) (x three))
}
works as expected -- it colors the sub-parts as the appropriate
syntactic categories, not all as string -- but
I thought I saw that (ie, C-x o not working) a few times, but to be
sure I tested just now in a fresh DrRacket 5.1.3, and C-x o works for
me (phew!).
Shriram
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
In Windows 7:
Over the past four days I've been using DrRacket intensively. During
this time it has crash on me at least twice a day, each time exiting
with error code 3 (according to the Puttycyg shell).
I eventually noticed that Dexpot (a virtual window manager for
Windows), which has
This looks like a reasonable way to get an element, but thinking
ahead, you will probably want something both like first (which you
have) and a corresponding rest.
The problem is that which element you get from the first operation
is nondetermistic in a set. Therefore, you have to either
- pass
On Sat, Sep 3, 2011 at 11:17 PM, Shriram Krishnamurthi s...@cs.brown.edu
wrote:
Is there a way of checking whether a value position is undefined?
Specifically, I'm trying to recognize the undefined value put in
structures by SHARED. It appears that a undefined value is sometimes
EQ
This program
#lang racket
(require mzlib/pconvert)
(parameterize ([show-sharing false])
(print-convert
(shared ([-a- (list 0 -b-)]
[-b- (list 1 -a-)])
-a-)))
produces this output in 5.1.3:
Language: racket; memory limit: 128 MB.
'(shared ((-0- `(0 (1 ,-0- -0-)
How do
Just in case my example is misleading, I want to suppress ALL shared
printing if possible.
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
-Hochstadt sa...@ccs.neu.edu wrote:
What would be printed for cycles?
On Mon, Sep 5, 2011 at 9:56 PM, Shriram Krishnamurthi s...@cs.brown.edu
wrote:
Just in case my example is misleading, I want to suppress ALL shared
printing if possible.
_
For list
The docs for build-struct-names says
The result is a list of identifiers:
* struct:name-id
* ctr-name, or make-name-id if ctr-name is #f
* name-id?
* name-id-field, for each field in field-ids.
* set-name-id-field! (getter and setter names alternate).
*
I presume this last line () is
build-struct-generation is a really useful utility, but I don't
understand how to use it. Specifically, see
Welcome to DrRacket, version 5.1.3 [3m].
Language: racket; memory limit: 128 MB.
(require syntax/struct)
(build-struct-generation #'p (list #'x #'y) #f #f)
'(let-values (((struct: make-
I have a define form that expands into two two definitions. Usually I can write
(my-define ...) == (begin (define ...) (define ...))
However, this doesn't interact well with local. Is there a way of
identifying that I'm in a local context and expanding into something
else so that this just
I hadn't realized I was getting the wrong local. Your suggestion did
the trick and the result made my library far better than I'd hoped.
Shriram
_
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/users
Is there a way of checking whether a value position is undefined?
Specifically, I'm trying to recognize the undefined value put in
structures by SHARED. It appears that a undefined value is sometimes
EQ? to another one, but this doesn't seem to be specified in the
documentation (ie, that there is
I am having some trouble figuring out how to use syntax-parse in
combination with wanting literals (aka, internal keywords) in a macro
definition. I have
(syntax-case stx (:)
and am trying to achieve a similar effect. I tried
(syntax-parse stx #:literals(:)
but that resulted in
That fixed the problem, thanks.
I was disappointed by some of the resulting error messages, though.
I'm bringing these up here because I don't know whether these error
messages are an artifact of the strategy Jay suggested.
To simplify, suppose I have
(define-syntax (defvar: stx)
parse-define-struct will parse an expression with anything in the
define-struct position; e.g.,
(let ([s #'(anything-goes m (a b))])
(parse-define-struct s s))
succeeds. However, it is strict about what goes in the field
positions, e.g., it cannot be used to parse
(let ([s #'(anything-goes
I guess to me, the term literal identifier is an oxymoron. It's
either a literal (5, #f, in this case :) or an identifier (foo, car,
+). Unless identifier means nothing more or less than symbol.
When I write (:) in syntax-case, I'm saying : is not a binding form;
I want to see literally a :,
Stephen Bloch mentioned his book Picturing Programs. I am happy to
recommend it, too, so you don't think only its author likes it:
http://picturingprograms.com/download/
It has many similarities to, but also some real differences from, both
HtDP and HtDP 2/e. At a *very* coarse level,
HtDP:
Perhaps go the other way?
(future/e e ...) == (future (lambda () e ...))
(thread/e e ...) == (thread (lambda () e ...))
(delay/e e ...) == (delay (lambda () e ...))
and so on? That is, accept defeat on the primary names, but occupy
the /e namespace for the macro versions, and whatever the
, but I'm
not sure we can switch at this point.]
At Mon, 29 Aug 2011 15:05:23 -0400, Eli Barzilay wrote:
15 minutes ago, Shriram Krishnamurthi wrote:
Perhaps go the other way?
(future/e e ...) == (future (lambda () e ...))
(thread/e e ...) == (thread (lambda () e ...))
(delay/e e
On the contrary, these are introducing new control structures, which is am
extremely legitimate use of a macro. Indeed, the presence of the macro
should alert the reader that control may behave a little differently here.
That these do so by introducing just a thunk is an artifact of how much the
To your concern that the use of macros to introduce thunks might be immoral.
I am offering moral suasion to the contrary.
--
Pardon terseness and mistakes -- sent from phone.
On Aug 29, 2011 9:34 PM, Robby Findler ro...@eecs.northwestern.edu
wrote:
Before futures get too embedded in code...
This is probably a silly question, but why does the future construct
require an extra thunk? The common case is going to be (future
expr); Racket is not Scheme, so it does not need to be afraid of
adding new syntax. Is it particularly useful to have
In a blank #lang racket buffer, if I hit F5, I get a repl cursor almost
instantaneously. If I do the same in typed/racket, it takes roughly three
seconds every time. This can't be blamed on parse time since the buffer is
empty! What gives? (And Sam, do you regard this as a ux bug?)
--
Pardon
on ttys001
[robby@gaoping] ~$ time racket -l racket
real 0m0.660s
user 0m0.368s
sys 0m0.118s
[robby@gaoping] ~$ time racket -l typed/racket
real 0m1.031s
user 0m0.719s
sys 0m0.168s
[robby@gaoping] ~$
On Sun, Aug 28, 2011 at 7:20 PM, Shriram Krishnamurthi s...@cs.brown.edu
wrote
b. you can show them an untyped/typed interaction that is
eye-opening for the better students and shows them something truly on
the cutting edge of PL research -- now this is very intriguing and
sounds like a great addition to the lecture on static/dynamic typing.
Hopefully Shriram (to
In 5.1.3, I was several steps into the Python Challenge when DrRacket
suddenly started spinning (while accessing URLs). The Stop button was
highlighted but clicking it did nothing; now DrRacket seems wedged.
My CPU usage is pretty much 0, and memory has been stable too. But
DrRacket won't
My experience last year was that the restrictions on some of these
sub-forms were arbitrary and not helpful. It also makes it harder for
students because if they click on the wrong documentation, they
don't understand why the thing that the docs say should work doesn't.
Teaching languages aren't
Jon Postel summed up contravariance by thinking about HTML: Be
liberal in what you accept, and conservative in what you send.
That's cute, except that Postel's law is arguably a source of security
holes, so it's probably not the best analogy. (-:
Shriram
There's nothing really sacred about the restrictions.
I was actually referring to the restrictions in require, which I
really bumped into -- not match. Sorry for not clarifying that.
As far as I know, there's no book that makes any reference to match.
Allow me to rephrase that as There is no
Very nice lunch break, though it's really the intersection of Postel's
Law and reflection that you're highlighting here. The problem with
that is that reflection breaks just about *everything*, so it's harder
to blame ol' Jon Postel. (-:
_
For
But the thing that goes wrong on the Web is not reflection. If a
network protocol is liberal in what packets it accepts, I can send it
packets that it really ought to have rejected but it instead
interprets and turns into behavior. By pushing this envelope, I can
eventually get it into some
On Wed, Aug 17, 2011 at 6:02 PM, Robby Findler
ro...@eecs.northwestern.edu wrote:
Could you just require match into bsl/isl?
Robby
On Wednesday, August 17, 2011, Prabhakar Ragde plra...@uwaterloo.ca wrote:
On 8/17/11 10:30 AM, Shriram Krishnamurthi wrote:
My experience last year
As I said, I don't know how match is implemented. It doesn't work for
constructs like *require* which have lots of sub-forms that are
actually *implemented* as top-level forms. So if you just import
require, all you get is require -- not all the sub-clauses.
understand it, it must be your fault. (-:
On Wed, Aug 17, 2011 at 9:00 PM, Robby Findler
ro...@eecs.northwestern.edu wrote:
The it in your second sentence does not refer to match, I take it?
(That took me a _long_ time to figure out :).
Robby
On Wed, Aug 17, 2011 at 7:20 PM, Shriram Krishnamurthi s
On Sat, Jul 16, 2011 at 11:16 AM, Stephen Bloch sbl...@adelphi.edu wrote:
Here's another idea: provide a sprite+picture structure, and have all the
operations take in and return it.
This is unwieldy beyond measure in our syntax.
Shriram
_
For
My follow-up, which I presume will appear on the blog at some point in
the future:
Thanks for the kind words about WeScheme. I'm sorry that my
presentation was a low point relative to the work, but then again,
that's much better than the other way around!
Since you offer an highly
Just as E, etc. get a tremendous benefit by saying they are languages
with no ambient authority, built instead around object capabilities.
The more I study capability languages the more I see the parallels to
Haskell's hair shirt. Frankly, for the modern world I think the
object capability side
Something seems to be off. When I have a contract violation, when the
error box pops up, if you click on a link, the text other than the
error line disappears. This happened during a live demo here in
Dortmund. If someone can't reproduce it I'll try to reconstruct it.
This is in 5.1.1.
In principle it's the same, but in practice TeX is less infuriating, oddly.
That's because LaTeX is a very leaky abstraction, and when it leaks it
gushes. It would be as if Racket periodically decided to return not
values but bit patterns, which need to be interpreted in the context
of a
On Mon, Jun 20, 2011 at 7:28 AM, Stephen De Gabrielle
stephen.degabrie...@acm.org wrote:
there's also a discussion going on here:
http://reddit.com/comments/i1slm
...of internet quality (that's an oxymoron).
Shriram
_
For list-related
Since this is a public forum, so someone reading that post might also
find this thread, let me point out one more source of confusion.
Continuations do not manufacture more names *than there really are*.
So, no matter how you program (continuations or CPS, Ajax or not) you
still have to come up
(define (p x)
(+ x 10)
(* x 10)
)
The result of (p 4) is 40. How can I display 14 and 40?
Write two separate functions.
2 How can I compare two letters in Ascii order? For example, when input
are x and y, the program will tell x is before y.
Also note that if you programmed in the Student Language levels, this
function would be illegal (and it might give you some insight into how
this programming style works).
On Wed, Jun 1, 2011 at 9:19 PM, Justin Zamora jus...@zamora.com wrote:
On Wed, Jun 1, 2011 at 7:22 PM, Yingjian Ma
The old J2EE codebase is still around, but highly, highly deprecated.
It's buggy. We know it's buggy. We have no plans to fix or support
those bugs. We don't even want to hear about them.
Instead, we think that anyone who wants to support J2EE (which is a
reasonable thing to consider) should
When you search in Help Desk for scanner, all you get is a weird
EoPL entry. You have to know that you're supposed to search for
lexer rather than scanner. scanner should be an
alternative/alias since it's perfectly standard.
_
For list-related
1 - 100 of 202 matches
Mail list logo