You could add or prototype this with quasiquotes (
http://quasiquotes.readthedocs.io/en/latest/). You just need to be able to
parse the body of your expression as a string into an array. Here is a
quick example with a parser that only accepts 2d arrays:

```
# coding: quasiquotes

import numpy as np
from quasiquotes import QuasiQuoter


@object.__new__
class array(QuasiQuoter):
    def quote_expr(self, expr, frame, col_offset):
        return np.array([
            eval('[%s]' % d, frame.f_globals, frame.f_locals)
            for d in expr.split('||')
        ])


def f():
    a = 1
    b = 2
    c = 3
    return [$array| a, b, c || 4, 5, 6 |]


if __name__ == '__main__':
    print(f())
```

Personally I am not sold on replacing `[` and `]` with `|` because I like
that you can visually see where dimensions are closed.

On Wed, Oct 19, 2016 at 3:24 PM, Thomas Nyberg <tomuxi...@gmx.com> wrote:

> Personally I like the way that numpy does it now better (even for
> multidimensional arrays). Being able to index into the different sub
> dimension using just [] iteratively matches naturally with the data
> structure itself in my mind. This may also just be my fear of change
> though...
>
> Here is an example of how it would be used for a 1D array:
>>
>> a = [| 0, 1, 2 |]
>>
>> Compared to the current approach:
>>
>> a = np.ndarray([0, 1, 2])
>>
>
> What would the syntax do if you don't have numpy installed? Is the syntax
> tied to numpy or could other libraries make use of it?
>
> Cheers,
> Thomas
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to