Re: [Gaea] Named optional attributes
Matias Capeletto <[email protected]>
| Newsgroups | gmane.comp.lib.boost.documentation |
|---|---|
| Message-ID | <CAJiTyxzOSy2i810zECR41VDV1+J2Df+-YN+MMaAX_ntAK77AhA@mail.gmail.com> |
On Tue, Nov 1, 2011 at 11:22 AM, Joel de Guzman <[email protected]> wrote: > On 11/1/2011 5:50 PM, Matias Capeletto wrote: >> >> [def [$ path [~width 100px] [~height 100px]] ... ] >> >> I know it is only syntax sugar because you could get the same effect >> checking for nil in the body but I think this will be a common >> scenario that is good we support right away. > > Actually, I thought about that, wrote its spec just like you > did, but later came to the opposite conclusion as you have. > Do you really think that this is a common scenario? In the case > of the images, for example, a default does not make sense. > What other use cases do you think will this make sense? > Is it really that common? It felt so common before reading this... Trying to think about examples and experience such a difficult time to came up with good ones is not a good sign. Maybe something like [def [code body [~lang C++]] ... ]... it was the best I could think of. You are right, maybe is not that necessary after all. > Also, that would prevent us from detecting if the user did > pass something or not because there will always be a value > instead of an /optional/ value. Not sure if that matters > though. If you want the real optional value instead of nil, you can still consider that if not default value is provided then is undefined. > I don't have a strong opinion on this. Your thoughts? If you do not define the value of an undefined optional parameter as nil, then the spec needs to be augmented to treat this new thing. For example with an [decl [defined symbol]]. But if we go this way, we should also find clear examples where the nil default is not enough. Talking about optional arguments, have you think about using it for the if template? [if [condition][ ... ] [~else ... ]] Just playing in this case, I also like how it is currently defined. Cheers Matias