En "Ruby", une fonction s'appelle une méthode, mais du point de vue mathématique, ce n'est guère qu'une question de vocabulaire.
=Exemple=
Sujet Bac STG CGRH Métropole-Réunion Septembre 2007.
Et plus bas, dans le même exercice, 
Définition des méthodes.
Donc pour "Ruby", "C" et "f" seront des méthodes, dont l'antécédent s'appellera "x" et dont l'image sera envoyée par "return":
def C(x)
 return x**2+50*x+100.0
end
def f(x)
 return C(x)/x
end
Bien entendu, on pouvait aussi définir "f" directement par 
def f(x)
 return x+50+100.0/x
end
=Tableau de valeurs=
Suite de l'énoncé du Bac STG 2007.
Par la suite, on demande de reproduire et compléter le tableau suivant, arrondi au centième d'euro:
Tableau de valeurs.
Certes, avec une boucle, on peut calculer plein de valeurs de "f(x)" différentes:
for x in 5..40 do
 puts("l'image de #{x} par f est #{f(x)}")
end
mais on a trop de valeurs de "x" pour remplir le tableau. Une meilleure variante sera donc
for x in [5,10,20,30,40] do
 puts("l'image de #{x} par f est #{f(x)}")
end
qui est déjà bien plus léger à exploiter.
Plus typiquement "Ruby":
Image d'un ensemble par une fonction.
Pour que la fonction "f" ne s'applique plus seulement à un réel, mais à tous les nombres du tableau, on utilise "map" (une méthode de l'objet "tableau"):
Cette notion d'image d'un ensemble par une fonction est à la base de pratiquement toute la géométrie: Alors que la symétrie centrale est définie comme une transformation qui associe un point à un point, on l'applique très vite à des ensembles de points comme dans l'expression "la symétrique d'une droite par rapport à un point".
Arrondis.
Enfin, pour avoir les arrondis au centime près:
qui remplit le tableau presque immédiatement.
=Représentation graphique=
"Ruby" n'étant pas très doué (pour le moment) en dessin, on va utiliser ses talents littéraires pour fabriquer un fichier au format svg. Ce fichier sera fabriqué comme une chaîne de caractères, et inscrit dans un fichier nommé "FonctionRuby01.svg" posté ci-dessous. Le fichier sera créé en mode écriture ("w") avec 
figure=File.open("FonctionRuby01.svg","w")
Création de la figure.
On commence par écrire dans le fichier (qui, on l'a vu ci-dessus, s'appelle "figure"), ce qu'il faut pour dire que c'est un fichier "svg" (l'entête):
figure.puts('<?xml version="1.0" encoding="utf-8"?>')
figure.puts('<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"')
figure.puts('"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">')
figure.puts('<svg xmlns="http://www.w3.org/2000/svg" width="640" height="480">')
Le fichier fera donc 640 pixels de large et 480 pixels de haut.
Axes.
Les axes et leurs graduations seront des traits, créés par des boucles puisque le travail des graduations est répétitif et que les boucles sont faites pour tout ce qui est répétitif.
Des abscisses.
L'axe des abscisses et ses graduations sera bleu:
figure.puts('<line x1="20.0" y1="460.0" x2="540.0" y2="460.0" style="stroke:rgb(0,0,64);stroke-width:1"/>')
Des ordonnées.
L'axe des ordonnées est en vert:
figure.puts('<line x1="20.0" y1="460.0" x2="20.0" y2="40.0" style="stroke:rgb(0,40,0);stroke-width:1"/>')
Courbe.
On va représenter graphiquement la fonction en rouge, sous forme d'un polygone à 350 côtés:
Résultat.
Pour que la figure soit reconnue, il reste encore à fermer la balise "svg", ouvert au tout début de la figure, puis à fermer le fichier pour que "Ruby" le libère:
figure.puts('</svg>')
figure.close
L'exécution du script ci-dessus produit le fichier suivant:
Certes, le fichier "Ruby" a l'air encore plus compliqué que le fichier "svg" mais il est possible de créer des méthodes "axes" et "trait" pour en simplifier la lecture.

Mathématiques avec Python et Ruby/Fonctions en Python