# Calling procedures by strings

Procedures can be called using a string expression for the procedure name. Use an `@` symbol, optionally followed by a character to show what type of value is returned for example, `%` for an integer. Follow this with the string expression in brackets. You can use upper or lower case characters.

Here are examples showing the four types of value which can be returned:

`i% = @%(name$) : (parameters)` for integer

`l& = @&(name$) : (parameters)` for long integer

`s$ = @$(name$) : (parameters)` for string

`f = @(name$) : (parameters)` for floating-point

So, for example, `test$:(1.0,2)` and `@$("test"):(1.0,2)` are equivalent.

Note that the string expression does not itself include a symbol for the type (`%`, `&` or `$`).

You may find this useful if, in a more complex program, you want to "work out" the name of a procedure to call at a particular point. Friendlier interaction includes an example program which uses this method.