A lot error messages and static checks are improved/added, because at the point students use BSL, some concepts are still not introduced
For example:
(define (f x)
(x + 2))
This is most likely a mistake. Students probably meant to write (+ x 2)
.
But well, it’s actually a valid Racket code. For example, f
might be a higher order function that consumes x
as a function value, which in turn consumes +
and 2
, etc.
But at the point BSL is used, students have not learned higher-order functions, so we can report this as an error
Here’s another one:
(define (f x)
x + 2)
This is perfectly fine in Racket. The function returns 2
.
In BSL, this is reported as an error, because the body of define
can only have one expression
@strika has left the channel
i think i may need to start him off in scratch lol
2 days in howtocode which uses racket on edx.. he gets evaluation order of parens but has trouble counting the arguments when there are a lot of parens, e.g (if (> (image-width img) (image-height img))
, he’s counting that if has 2–3 arguments but it really if
only got passed in 1, among several other things
There are lots of examples to modify.
checking the edx site, the quizzes that were once free are now under a pay wall :confused:
those quizzes i think are very crucial since you need to test your understanding…
otherwise they move on with wrong assumptions that have never been tested in reality and it cascades into more problems later on… WELP, i know you guys have no power over it.. probably need to dm greg or whoever is incharge of the edx site