[Nix-dev] Re: Attribute selection with default
Eelco Dolstra
e.dolstra at tudelft.nl
Thu Sep 24 14:39:38 CEST 2009
Hi,
Ludovic Courtès wrote:
>>>> The next question is how to handle multiple level like `attrByPath
>>>> ["a" "b" "c"] default as', one possible way is to attribute selections
>>>> inside the name of the selected attribute.
>>>>
>>>> as.{a.b.c ? default}
>> I don't find this more intuitive than "as.a.b.c or default".
>
> IIUC Nicolas’ proposal is more flexible than ‘or’, because
> “as.a.b.c or default” could mean any one of:
>
> - as.{a.b.c ? default}
> - as.a.{b.c ? default}
> - as.a.b.{c ? default}
Mine also allows that:
- as.a.b.c or default
- (as.a).b.c or default
- (as.a.b).c or default
I.e. simply using the parentheses - no new syntax required.
The idea is that the "." operator is changed from `expr "." attrname' to `expr
"." attrpath ("or" expr)?'. So putting parenthesis around as.a or as.a.b gives
you two applications of the "." operator, one without a default and one with a
default.
--
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/
More information about the nix-dev
mailing list