On Monday, Sean Kanaley wrote: > Please disregard the first option as it would be semantically incorrect... > > One could then not use mappend as a higher order function properly as > the arguments would've been evaluated already in, say, the list if > mappend is folded in. > > So I'll have to use lazy, but how does one write macros with it?
I'm not sure that I followed things correctly, but the problem with `mappend' is that it's yet another piece of fuunctionality that needs to be defined in the lazy language to ensure that it's not too strict. If you're just requiring it from `racket/list' then the lazy languauge treats it as something that expects strict inputs (which is obviously wrong). To fix it, you just need to do this definition, and there shouldn't be any need for macros when you do that. (BTW, the reason that it's not already in the lazy langugae is that it's a function that was added well after the lazy language was made.) -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! ____________________ Racket Users list: http://lists.racket-lang.org/users