2010-11-19 20 views
3

Nous apprenons des fonctions d'ordre supérieur dans notre classe et notre professeur a mentionné qu'elles peuvent être utiles pour la programmation Web. Je ne suis pas sûr de savoir dans quels cas cela serait vrai et je me demandais si quelqu'un avait des expériences avec des fonctions d'ordre supérieur dans certaines tâches courantes de programmation Web, et dans quelles situations elles seraient utiles. J'ai lu notre livre, mais la programmation web n'a pas été mentionnée, je suppose que c'était juste quelque chose que le professeur a mentionné hors sujet, mais cela a suscité un peu mon intérêt.Programmation Web avec des fonctions d'ordre supérieur

Merci!

+0

Ils sont utiles pour * tout * (prendre avec du sel, mais) une programmation non triviale dans de nombreux paradigmes (et très certainement dans l'impératif - par exemple non déclaratif -). La «programmation Web» n'est qu'un petit sous-ensemble de la programmation (peut-être non triviale). Un exemple très trivial d'une fonction d'ordre supérieur consiste à appliquer une carte pour créer une liste de noms d'utilisateurs à partir d'une liste d'ID utilisateur. Ce n'est même pas très artificiel. –

Répondre

3

Je ne sais pas exactement de quels cas votre professeur a pu parler, mais les fonctions d'ordre supérieur sont fortement utilisées en JavaScript. Un exemple simple d'une fonction d'ordre supérieur (une fonction qui prend une fonction en tant que paramètre et/ou le retour d'une fonction à la suite) serait la fonction prêt() jQuery:

$(document).ready(function(){ 
    alert('The DOM is ready for manipulation!'); 
}); 

Un exemple simple, oui .. .mais elle démontre à quel point les fonctions d'ordre supérieur peuvent être utiles.

+0

+1 pour l'exemple utile. –

2

Play, (Scala) Lift (Scala), SeaSide (Smalltalk) et Webmachine (Erlang) sont trois cadres web dépendent fortement des ideoms fonctionnels tels que des fonctions d'ordre-supérieur.

0

Clojure utilise intensivement des fonctions d'ordre supérieur pour le développement Web dans l'excellent cadre Ring. Voir this excellent video qui explique certains des concepts.

L'idée de base est:

  • Une application web est vraiment juste une fonction qui demande une réponse
  • Vous pouvez donc composer l'intégralité de l'application Web en utilisant des fonctions d'ordre supérieur