Warum nicht immer Inf anstelle von Lazy in Idris benutzen?

9

Ich finde, dass Lazy und Inf sehr nahe ist:

  

Lazy und Inf sind eng miteinander verwandt (in der Tat, der zugrunde liegende   Implementierung verwendet denselben Typ). Der einzige Unterschied in der Praxis ist   in der Totalitätsprüfung, wo Lazy gelöscht wird (d. h. Begriffe werden geprüft auf   Abbruch normalerweise, Ignorieren Faulheit Anmerkungen), und Inf verwendet a   Produktivitätsüberprüfung, bei der jede Verwendung von Delay Konstruktor sein muss   bewacht.

Wie beschrieben oben , ist die zugrunde liegende Implementierung von Lazy und Inf ist die gleiche, der einzige Unterschied ist die Überprüfung der Gesamtheit.

Ich denke immer, Inf scheint viel natürlicher zu sein, was eher der Faulheit entspricht, die wir in Haskell verwendet haben, und wir fragen uns, was die Szene in der Produktion ist, die wir Lazy benutzen müssen - die immer eine tiefe Totalität haben überprüfen?

    
luochen1990 13.01.2018, 03:35
quelle

0 Antworten

Tags und Links