Funktionen werden in Gofer definiert, durch eine oder mehrere Gleichungen der Form:
f pat1 pat2 ... patn = rhs(oder durch einen äquivalenten Ausdruck, bei dem die Funktion durch einen Operator dargestellt wird - s. Funktionsnamen). Jeder der Ausdrücke pat1 pat2 ... patn representiert ein Argument der Funktion f und wird als 'Pattern' bezeichnet. Die Anzahl der Pattern bestimmt also die Stelligkeit der Funktion. Wird f durch mehr als eine Gleichung definiert, so müssen alle Gleichungen hintereinander stehen und die gleiche Stelligkeit besitzen.
hello "Mark" = "Howdy" hello name = "Hello " ++ name ++ ", nice to meet you!"
Aufruf: hello ''Mark'' ergibt: Howdy
Aufruf: hello ''Fred'' ergibt: Hello Fred, nice to meet you!
hello name = "Hello " ++ name ++ ", nice to meet you!" hello "Mark" = "Howdy"
Aufruf: hello ''Fred'' ergibt: Hello Fred, nice to meet you!
Aufruf: hello ''Mark'' ergibt: Hello Mark, nice to meet you!