# What is the main point of "where"?

**URL:** <https://discourse.julialang.org/t/what-is-the-main-point-of-where/3940>\
**Category:** General Usage\
**Created:** [May 26, 2017, 4:29pm UTC](https://discourse.julialang.org/t/what-is-the-main-point-of-where/3940 "2017-05-26T16:29:47Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [May 26, 2017, 4:47pm UTC](https://discourse.julialang.org/t/what-is-the-main-point-of-where/3940/2 "2017-05-26T16:47:05Z")

</div>

I believe it’s intended to create a distinction between a parametric type’s constructor:

```julia
Array{T}(x) where {T} = ...

```

which can be called with an explicit parameter:

```julia
x = Array{Float64}(5)

```

and a regular method:

```julia
f(x::T) where {T} = ...

```

which cannot:

```julia
x = f(1.0)

```

and just as a way to talk about unbound type parameters in a more concrete way. For example, on julia v0.5 we have:

```julia
julia> Vector
Array{T,1}

```

but on julia v0.6 we have:

```julia
julia> Vector
Array{T,1} where T

```

which clearly shows that the `T` is not yet bound to anything.

---

_[View the full topic](https://discourse.julialang.org/t/what-is-the-main-point-of-where/3940)._
