Am Mo., 4. Dez. 2023 um 12:33 Uhr schrieb Sergei Egorov <e...@acm.org>:
> It is not that the code is unreadable in some general definition of the > term, it is that some forms of it suddenly become potentially misleading or > questionable. Before SRFI-245, I could be 100% sure, when reading the body > of a big procedure, starting e.g. as follows: > > (lambda (x y z) > .... (lambda () (list x y z)) > (display "hello") > ... a lot of commands below, > going off-screen ... > > that x refers to the first parameter, with SRFI-245 it is no longer so: x > can be defined anywhere in the same body; so can y, z, and list. > Even before SRFI 245, you would have missed a (define-syntax display (syntax-rules () [(_ arg) (define tmp (put-string (current-output-port) arg))])) that would have come very far below your code in question (at the same level as where the lambda expression is bound). It is not a particular "problem" of SRFI 245; Scheme programs can only be understood if read globally. Only the sanity of the programmers prevents us from actually having to do it. Marc