Alan Manuel Gloria:
> Have some more SUBLIST abuse!!!
>
> Note that what I'm talking about, mostly, is: should we consider this
> good style or bad style? If bad, what's a better expression of the
> same logic?
>
> ; please view using a fixed-width font!
> define map1(f as) $ cond
> ! null?(as) $ '()
> ! pair?(as) $ cons
> ! f $ car as
> ! map f $ cdr as
> ! #t $ error "attempt to map a non-list"
Interesting question.
Currently I've been using the following two formats for cond's pairs of
condition/action:
1. When result is short:
! condition-as-neoteric action-as-neoteric
2. When result is long:
! condition-as-neoteric
! ! action-as-sweet
And as I mentioned before, I prefer to put on the LHS any atom that's a control
structure UNLESS the whole structure fits in the line.
So I would do:
define map1(f as)
! cond
! ! null?(as) $ '()
! ! pair?(as)
! ! ! cons
! ! ! ! f ar as
! ! ! ! map f cdr(as)
! ! #t error("attempt to map a non-list")
Your use of "$" everywhere to connect condition and action looks like this:
! condition-as-neoteric $ action-as-sweet
This is an interesting use of "$", and it means that in actions you can drop
some parens (which has its advantages). However, it means that you have to use
neoteric on the left, even though you can (and probably would) use sweet on the
right. That seems possibly-inconsistent to me.
If that's a common case, perhaps in spec version 0.4 we should take:
left-hand-side-on-same-line $ right-hand-side-with-subblocks
and redefine it as:
\\
! \\ left-hand-side-on-same-line
! \\ right-hand-side-with-subblocks
Then you could say sweet-expressions on both sides, e.g.:
! null? as $ '()
And you could use leading "$" to take the right-hand-side and put it into a
list.
HOWEVER, that would also means that "map f $ cdr as" would no longer have the
current meaning, and there wouldn't be a way using "$" to express that.
Granted, in this case "map f cdr(as)" is at least as simple.
It's a trade-off; without code samples it's hard for me to say which way is the
best trade. Hopefully the experience we gain now will make it obvious.
--- David A. Wheeler
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Readable-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/readable-discuss