What sort of things do you use pointer equality for?
Does raco check-requires
have trouble with sub-modules? For example, with the following code: #lang racket/base
(require "./foo.rkt"
"./bar.rkt"
"./baz.rkt")
(module+ main
(foo bar baz))
raco check-requires
suggested dropping all of the requires; however dropping any of the requires causes compilation to fail.
Ah, I just read Jack’s comment on the issue, and I think I do prefer having the require
w/in the module+
here, so that’s solved it for me.
Why plt-r5rs
can read (123abc)
? Note that 123abc
is not an identifier.
This is my experiment: test.manifest
(123abc)
~\>plt-r5rs.exe
Welcome to Racket v6.12.
R5RS legacy support loaded
> (with-input-from-file "test.manifest"
(lambda ()
(read)))
(123abc)
>
Following the R5RS specification, the 123abc
is not an identifier.
Section 2.1: Most identifiers allowed by other programming languages are also acceptable to Scheme. The precise rules for forming identifiers vary among implementations of Scheme, but in all implementations a sequence of letters, digits, and ``extended alphabetic characters'' that begins with a character that cannot begin a number is an identifier.
In R5RS, behavior that is not specified “is an error”, which means the implementation is free to behave as it pleases. While that program is not portable based on the R5RS guarantees, the specification intentionally allows Racket’s behavior.
Truth be told - Racket usually interprets the spec in a “strict” sense.
@soegaard2 that’s true for R6RS but less so for R5RS
This program errors, for example: #lang r6rs
(library (x)
(export)
(import)
(define 123abc x))
I seem to recall that brackets aren’t allowed in #lang r5rs
:disappointed:
yes, that’s true
@soegaard2 This just tell me a identifier can not begin a number.
@chansey97 The rule says “these are allowed”. It does not say “…and everything else is disallowed”
“The precise rules for forming identifiers vary among implementations of Scheme,” was the important line. The spec only tells, which character sequences are guaranteed to be identifiers. It doesn’t rule any out.
which is kind of loosey goosey and makes for a frustrating spec, but alas
@soegaard2 but it also says > but in all implementations a sequence of letters, digits, and ``extended alphabetic characters’’ that begins with a character that cannot begin a number is an identifier.
OK.
I know what it means…
Yes, those sequences are guaranteed to be identifiers.
:wink:
It is pretty convenient: (define 2π (* 2 pi))
Sorry, in Racket we still can define a variable 123abc
. I have tested. Some of my previous messages are wrong, I have to delete it.
No worries, the history disappears after a month anyway.
Prevent misleading others:wink:
I just delete the previous wrong message. Thanks all :slightly_smiling_face:.
should drracket freeze a lot? because it does for me…
i m not sure if i can pinpoint all occurrences of it, what conditions met for it to happen… but maybe someone has a similar problem, im using windows 10 x64
No, I wouldn’t say it should. When I was using it a bit on Win 10 some months ago, I can’t recall ever experiencing it freezing. I was only working with small single-file programs, though.