# Set function name

**URL:** <https://discourse.julialang.org/t/set-function-name/72810>\
**Category:** General Usage\
**Created:** [December 9, 2021, 8:45am UTC](https://discourse.julialang.org/t/set-function-name/72810 "2021-12-09T08:45:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jzr](https://avatars.discourse-cdn.com/v4/letter/j/eb9ed0/32.png) [@jzr](https://discourse.julialang.org/u/jzr)\
**Post date:** [December 9, 2021, 8:45am UTC](https://discourse.julialang.org/t/set-function-name/72810/1 "2021-12-09T08:45:35Z")

</div>

How can I define a function with a given name?

```julia
let fname = :myfunction
    @eval quote
        function $(fname)()
            42
        end
    end
end
UndefVarError: fname not defined

```

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [December 9, 2021, 8:49am UTC](https://discourse.julialang.org/t/set-function-name/72810/2 "2021-12-09T08:49:41Z")

</div>

`@eval` operates in global scope. That’s why it can’t see `fname`.

EDIT: This is the wrong answer. See below.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [December 9, 2021, 8:56am UTC](https://discourse.julialang.org/t/set-function-name/72810/3 "2021-12-09T08:56:03Z")

</div>

IMHO, it’s no coincidence that `@eval` and `@evil` sound so similar 😉

---

<div class="post-metadata">

**Author:** ![simeonschaub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simeonschaub/32/216566_2.png) [@simeonschaub](https://discourse.julialang.org/u/simeonschaub)\
**Post date:** [December 9, 2021, 3:56pm UTC](https://discourse.julialang.org/t/set-function-name/72810/4 "2021-12-09T15:56:34Z")

</div>

Did you mean to write

```julia
@eval begin
    function $(fname)()
        42
    end
end

```

instead of

```julia
@eval quote
    function $(fname)()
        42
    end
end

```

? The former should work just fine.
