# About the \`Array{\<:Number, 2}\` syntax

**URL:** https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845
**Category:** General Usage
**Created:** [February 2, 2017, 4:37pm UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845 "2017-02-02T16:37:39Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![o314](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/o314/32/252_2.png) [@o314](https://discourse.julialang.org/u/o314)
#### Post date: [February 2, 2017, 4:37pm UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845/1 "2017-02-02T16:37:39Z")

</div>

Hi every julia linguist,

I am trying to find some info about the `Array{<:Number, 2}` syntax  
for matrix, tensor as mentioned in the slide “about Julia 1.0” given by Stefan KARPINSKI / JuliaCon 2016

[![](https://global.discourse-cdn.com/julialang/original/3X/c/f/cf92fbb3485e0d87eda2529815884dcc9186cd76.jpeg "JuliaCon 2016 | Julia 1.0 | Stefan Karpinski") ](https://www.youtube.com/watch?v=5gXMpbY1kJY&t=3m12s)

(goto 3m12s)

I do not find relevant track neither at [Issues · JuliaLang/julia · GitHub](http://github.com/JuliaLang/julia/issues) or [GitHub - JuliaLang/Juleps: Julia Enhancement Proposals](http://github.com/JuliaLang/Juleps)  
I have googled a lot of keywords combination without any success.

My last proposition may be `dimensional parametric abstract type`

Can someone tell me a bit more about it ?  
Is there any page in the manual / github issue already dedicated to it ?

---

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [February 2, 2017, 7:54pm UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845/2 "2017-02-02T19:54:59Z")

</div>

That particular syntax is, I think: [https://github.com/JuliaLang/julia/issues/6984](https://github.com/JuliaLang/julia/issues/6984)

A lot of the other changes were implemented as part of: [https://github.com/JuliaLang/julia/pull/18457](https://github.com/JuliaLang/julia/pull/18457)  
(e.g. you can now write the type `Array{T,3} where T<:Number`)

---

<div class="post-metadata">

### Author: ![o314](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/o314/32/252_2.png) [@o314](https://discourse.julialang.org/u/o314)
#### Post date: [February 3, 2017, 5:37am UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845/3 "2017-02-03T05:37:32Z")

</div>

Ok, thanks for your answer.

I gather here the links you mention and some others that could be useful.

**FEATURE REQUEST: ADD SYNTACTIC SUGAR FOR COVARIANT ACTUAL TYPE PARAMETERS**  
[https://github.com/JuliaLang/julia/issues/6984](https://github.com/JuliaLang/julia/issues/6984)

**SYNTACTIC SUGAR FOO{\<:BAR} FOR FOO{T} WHERE T\<:BAR #20414**  
[https://github.com/JuliaLang/julia/pull/20414](https://github.com/JuliaLang/julia/pull/20414)

**TYPE SYSTEM REVISION AND NEW SUBTYPE ALGORITHM**  
[https://github.com/JuliaLang/julia/pull/18457](https://github.com/JuliaLang/julia/pull/18457)

**TYPES / UNIONALL TYPES**  
[https://github.com/JuliaLang/julia/blob/master/doc/src/manual/types.md#unionall-types](https://github.com/JuliaLang/julia/blob/master/doc/src/manual/types.md#unionall-types)

**METHODS / PARAMETRIC METHODS**  
[https://github.com/JuliaLang/julia/blob/master/doc/src/manual/methods.md#parametric-methods](https://github.com/JuliaLang/julia/blob/master/doc/src/manual/methods.md#parametric-methods)

–

I am still struggling a bit to find information about the parametric where rule

`f(x::T) where T = T` seems a bit tautological to me.

---

<div class="post-metadata">

### Author: ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)
#### Post date: [February 3, 2017, 7:26am UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845/4 "2017-02-03T07:26:05Z")

</div>

`where` is a new syntax in the development version of Julia (0.6). More information will probably come once that releases.  
I don’t think your ‘tautological’ example is right. It is short for `f(x::T) where T <: Any = T`, so it defines a function, for any T, that returns T (the type of x). If that is what you want it is not tautological.

---

<div class="post-metadata">

### Author: ![o314](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/o314/32/252_2.png) [@o314](https://discourse.julialang.org/u/o314)
#### Post date: [February 3, 2017, 2:07pm UTC](https://discourse.julialang.org/t/about-the-array-number-2-syntax/1845/5 "2017-02-03T14:07:26Z")

</div>

> [@mkborregaard](#):
>
> It is short for f(x::T) where T \<: Any = T, so it defines a function for any T that returns T

I agree that docs is rather sparse for now.

It seems to me that some default value could help a lot to enhance clarity.  
Even the `foo where bar where baz` couldn’t be allegiated to `foo where bar, baz` …

[edit] But the thread [`Where` questions](https://discourse.julialang.org/t/where-questions/1797) should be a better place to discuss about that 😉
