10
votes

La signification de 'dans le nom de la fonction Haskell?

Qu'est-ce que la citation ' utilisé pour? J'ai lu des fonctions au curry et lisez deux façons de définir la fonction Ajouter une fonction - curry et inconvénalement. La version curry ... xxx

... Mais cela fonctionne également bien sans la citation. Alors quel est le point du '?


2 commentaires

Souhaitez-vous renommé «le sens de» dans le nom de la fonction Haskell? »


Dupliqué possible de Apostrophe dans les identificateurs de Haskell


5 Réponses :


22
votes

La citation ne signifie rien à Haskell. Il ne fait que partie du nom de cette fonction.

Les gens ont tendance à utiliser ceci pour des fonctions "internes". Si vous avez une fonction qui résume une liste à l'aide d'un argument de l'accumulateur, votre fonction Somme prendra deux arguments. Ceci est moche, vous faites donc une fonction somme ' de deux args et une fonction somme d'une seule liste sum list = somme "0 liste .

éditer, peut-être que je devrais simplement montrer le code: xxx

Vous faites cela afin que somme ' est la queue -Récours, et afin que "l'API publique" soit belle.


3 commentaires

somme ' pourrait également être dans somme ' s clause.


Méfiez-vous accidentellement de la fonction principale de votre fonction récursive, c'est-à-dire i.e. somme 's (x: xs) = somme (s + x) xs . Le système de type se plaint ici, mais si les fonctions ont le même type, il est difficile de trouver.


Il fait normalement référence à une version légèrement modifiée de la fonction d'origine.



9
votes

Il n'y a pas de point particulier au caractère ' dans cette instance; C'est juste une partie de l'identifiant. En d'autres termes, myADD et myADD ' sont distincts, les fonctions non liées.

classiquement cependant, le ' est utilisé pour désigner une relation d'évaluation logique. Ainsi, la fonction hypothétique myADD et myADD ' serait associée à ce que myADD' pourrait être dérivé de myAdd . Il s'agit d'une convention dérivée de la logique formelle et des preuves dans les universités (où Haskell a ses racines). Je devrais souligner que c'est seul une convention, Haskell ne l'applique pas.


0 commentaires

6
votes

Quote 'est juste un autre caractère autorisé dans les noms Haskell. Il est souvent utilisé pour définir des variantes de fonctions, auquel cas la citation est prononcée 'Prime'. Plus précisément, les bibliothèques Haskell utilisent des citations-variantes pour montrer que la variante est stricte. Par exemple: plield est paresseux, replier ' est strict.

Dans ce cas, on dirait que la citation est tout simplement utilisée pour séparer les variantes curry et décédées.


0 commentaires

16
votes

Il est souvent prononcé "Prime", de sorte que ce serait "MyAdd Prime". Il est généralement utilisé pour noter une étape suivante dans le calcul, ou une alternative.

Donc, vous pouvez dire P>

f x = 
  let x' = subcomputation x
  in blah.


0 commentaires

1
votes

Comme dit par d'autres, le ' ne tient aucun sens pour Haskell lui-même. C'est juste un personnage, comme la lettre ou un numéro.

Le ' est utilisé pour désigner des versions alternatives d'une fonction (dans le cas de FLETL et FLETL' ) ou des fonctions d'assistance. Parfois, vous verrez même plusieurs ' sur un nom de la fonction. L'ajout d'un ' à la fin d'un nom de la fonction est tout simplement beaucoup plus concis que d'écrire quelquefonctionhelper et quelquecongrie . .

L'origine de cette notation est en mathématiques et en physique, où, si vous avez une fonction f (x) , son dérivé est souvent désigné comme f '(x) .


0 commentaires