Inline code in the docs - the correct way
bachmeier
no at spam.net
Mon Feb 5 16:14:22 UTC 2018
On Monday, 5 February 2018 at 15:27:56 UTC, H. S. Teoh wrote:
> On Mon, Feb 05, 2018 at 09:50:38AM -0500, Steven Schveighoffer
> via Digitalmars-d wrote:
>> On 2/5/18 1:27 AM, H. S. Teoh wrote:
>> > On Sun, Feb 04, 2018 at 02:34:31PM -0500, Steven
>> > Schveighoffer via Digitalmars-d wrote: [...]
>> > > I don't have a hard time with braces. It tends to be worse
>> > > with parentheses. Generally these are indented properly,
>> > > and not }}}}} all on one line.
>> >
>> > Wait till you see Lisp code. :-P
>>
>> I still have nightmares from my scheme class in college...
>> Literally the professor would be up at the whiteboard
>> scribbling a scheme function, and at the end, he would draw a
>> whole bunch of closing parentheses in a row, reciting the
>> opening parentheses for each one "car, cdr, ..."
>>
>> I also have seen people's code who DID put all their closing
>> braces on one line. It was... awful.
> [...]
>
> Apparently it's a prevailing style for Lisp and Lisp dialects
> like Scheme. Random example (this is in Guile, a Scheme
> dialect, quoted from open source code):
>
> (define (match-predicate obj alist)
> (if (null? alist)
> "Unknown type"
> (if (apply (caar alist) obj)
> (cdar alist)
> (match-predicate obj (cdr alist)))))
>
> The only way I can keep my sanity while editing this sort of
> code is vim's jump-to-match feature.
>
>
> T
It's common in Scheme/Racket to use square brackets for nested
terms:
(let ([x (random 4)]
[o (random 4)])
(cond
[(> x o) "X wins"]
[(> o x) "O wins"]
[else "cat's game"]))
I find code written like your example (which is unfortunately
quite common) to be no different from poorly-written Perl code.
Properly indented and square bracketed Scheme code is easy to
read.
One of the nice things about D IMO is that you have to work
harder to write ugly code. Atrocities like chaining a bunch of
function calls together don't look bad in D.
More information about the Digitalmars-d
mailing list