# ERROR: MethodError: no method matching iterate(::Symbol)

**URL:** <https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482>\
**Category:** General Usage\
**Created:** [September 29, 2020, 1:02pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482 "2020-09-29T13:02:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sz1992](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sz1992/32/19219_2.png) [@sz1992](https://discourse.julialang.org/u/sz1992)\
**Post date:** [September 29, 2020, 1:02pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/1 "2020-09-29T13:02:56Z")

</div>

Hi,  
if you try to iterate over ::Symbol you get an error:  
MWE:

```julia
for i in :c @show i end
ERROR: MethodError: no method matching iterate(::Symbol)

```

however it works fine with Int:

```julia
for i in 5 @show i end
i = 5

```

note also that it works for:

```julia
for i in [:c] @show i end

```

Is there a solution for this?

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [September 29, 2020, 1:07pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/3 "2020-09-29T13:07:57Z")

</div>

This is the solution, isn’t it?  
Integers are iterable (I think for convenience, but have to search for the why), but not everything is iterable.

Another solution would be to implement `iterate` for `Symbol`.

Iterable `Number` has been usefull before broadcasting was introduced in Julia 0.5. See discussions below.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [September 29, 2020, 1:09pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/4 "2020-09-29T13:09:45Z")

</div>

Here is listed what is iterable:  
[https://docs.julialang.org/en/v1/base/collections/#lib-collections-iteration](https://docs.julialang.org/en/v1/base/collections/#lib-collections-iteration)

Some discussion is found here:  
[https://github.com/JuliaLang/julia/issues/18509](https://github.com/JuliaLang/julia/issues/18509)

Linked from here:  
[https://github.com/JuliaLang/julia/issues/7903](https://github.com/JuliaLang/julia/issues/7903)

---

<div class="post-metadata">

**Author:** ![sz1992](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sz1992/32/19219_2.png) [@sz1992](https://discourse.julialang.org/u/sz1992)\
**Post date:** [September 29, 2020, 1:21pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/5 "2020-09-29T13:21:45Z")

</div>

Is there a rationale behind for not having `Iterate` for `Symbol`?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [September 29, 2020, 1:22pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/6 "2020-09-29T13:22:18Z")

</div>

Yes, there is no point to it.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [September 29, 2020, 1:28pm UTC](https://discourse.julialang.org/t/error-methoderror-no-method-matching-iterate-symbol/47482/7 "2020-09-29T13:28:06Z")

</div>

As in the discussions above stated: there is not much rationale behind making `Number` iterable.
