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?
Tags und Links idris lazy-evaluation codata