[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