Lazy evaluation

http://dbpedia.org/resource/Lazy_evaluation an entity of type: WikicatCompilerOptimizations

L’évaluation paresseuse (en anglais : lazy evaluation), appelée aussi appel par nécessité ou évaluation retardée est une technique d'implémentation des programmes récursifs pour laquelle l'évaluation d'un paramètre de fonction ne se fait pas avant que les résultats de cette évaluation ne soient réellement nécessaires. Ces résultats, une fois calculés, sont préservés pour des réutilisations ultérieures. Dans un langage comme Haskell, l'évaluation est paresseuse par défaut. rdf:langString
遅延評価(ちえんひょうか、英: lazy evaluation)や必要呼び(ひつようよび、英: call-by-need)は評価戦略の一種類であり、非正格な関数型言語で使用もされる。対義語は先行評価(英: eager evaluation)。 rdf:langString
컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과값이 필요할 때까지 계산을 늦추는 기법이다. 두 가지 관련된 항목들이 있는데 지연 계산법과 최소 계산법이다. 느긋하게 계산하면 필요없는 계산을 하지 않으므로 실행을 더 빠르게 할 수 있고, 복합 수식을 계산할 때 오류 상태를 피할 수 있고, 무한 자료 구조를 쓸 수 있고, 미리 정의된 것을 이용하지 않고 보통 함수로 를 정의할 수 있다. 느긋한 계산법을 사용하는 언어들은 "이름으로 호출"하거나 "필요할 때 호출"하는 계산 전략을 사용하는 것으로 나눌 수 있다. 하스켈과 같은 대부분의 실제 느긋한 언어들은 성능상의 이유로 "필요할 때 호출" 전략을 사용한다. 그러나 느긋한 계산법을 이론적으로 표현한 것들은 간편하게 "이름으로 호출"하기도 한다. 느긋한 계산법의 반대되는 계산법은 조급한 계산법이 있는데 엄격한 계산법이라고도 한다. 조급한 계산법은 대부분의 프로그래밍 언어가 동작하는 방식이다. rdf:langString
In programmeertalen is luie evaluatie (in het Engels: lazy evaluation) een evaluatie-strategie. Het wordt soms ook Call-by-need genoemd. Het idee is dat een uitdrukking pas geëvalueerd wordt wanneer ze daadwerkelijk nodig is. Voorbeelden van programmeertalen die een luie evaluatie hanteren zijn Haskell en Scala. rdf:langString
Avaliação preguiçosa (também conhecida por avaliação atrasada) é uma técnica usada em programação para atrasar a computação até um ponto em que o resultado da computação é considerado necessário. Os benefícios da avaliação preguiçosa incluem o aumento do desempenho ao evitar cálculos desnecessários, evitando condições de erro na avaliação de expressões compostas, a habilidade em construir estruturas de dados infinitas e a habilidade de definir estruturas do controle como funções regulares melhor que usando primitivas internas. No oposto de avaliação atrasada está avaliação ansiosa, também conhecido como avaliação rigorosa. rdf:langString
在程式語言理論中,惰性求值(英語:Lazy Evaluation),又譯為惰性计算、懒惰求值,也稱為傳需求調用(call-by-need),是一个计算机编程中的一个概念,目的是要最小化计算机要做的工作。惰性计算的最重要的好处是它可以在空间复杂度上得到极大的优化,从而可以轻易构造一个无限大的数据类型。 惰性求值的相反是及早求值,这是一个大多数编程语言,如C语言,所使用的缺省计算方式。 由于翻译问题,该词在不同语境下有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”,本条目主要内容为延迟求值,后者请参见最小化计算条目。 rdf:langString
في ، إنَّ التثمين الكسول (بالإنجليزية: Lazy evaluation)‏ أو الاستدعاء عند الحاجة (بالإنجليزية: call-by-need)‏، هي تؤخِّر تثمين لحين احتياج قيمته وَتتجنّب بذلك -مُشاركة- التَثمينات المُتكرِّرة. يُمكن للمُشاركة إنقاص وقت تشغيل دوال مُعيَّنة بعاملٍ أُسِّي على استراتيجيَّات التثمين غير الصارم، مثل . تتضمَّن منافع التثمين الكسول: * القدرة على تعريف بُنى تدفق السيطرة بتجريدٍ بدلًا من أن تكون مُدمجة. * القدرة على تعريف بُنى بيانات ، يسمح هذا بتنفيذ دقيق للمزيد من الخوارزميَّات. * زيادة الأداء بتجنُّب الحسابات غير الضروريَّة وَالأخطاء في حالة تثمين التعابير المُركَّبة. rdf:langString
En programació d'ordinadors, avaluació tardana (en anglès: Lazy evaluation) és la tècnica de retardar un càlcul fins que se'n requereixi el resultat. Els beneficis de l'avaluació tardana inclouen: * augment de rendiment en evitar el càlcul d'expressions no requerides, evitant a més els errors que s'hi puguin produir. * capacitat de construir estructures de dades de llargada infinita * capacitat de definir estructures de control com a abstraccions en comptes de comandes. L'avaluació tardana comprèn els següents tres conceptes: El llenguatge Haskell utilitza majoritàriament l'avaluació tardana. rdf:langString
Odložené vyhodnocování (anglicky lazy evaluation nebo call-by-need, česky též líné vyhodnocování) je v programování vyhodnocovací strategie, při které je vyhodnocení výrazu odloženo až do okamžiku, kdy je jeho hodnota skutečně potřebná (nestriktní vyhodnocování). Často se také vyhýbá se opakovanému vyhodnocování. Sdílení může zkrátit čas běhu určitých funkcí o exponenciální faktor oproti jiným nestriktním strategiím vyhodnocování např. . K výhodám odloženého vyhodnocování patří: rdf:langString
Στη θεωρία των γλωσσών προγραμματισμού, η οκνηρή αποτίμηση (lazy evaluation) ή κλήση κατ' ανάγκη (call-by-need) είναι μια (evaluation strategy) που καθυστερεί την αποτίμηση μιας έκφρασης μέχρι αυτή να χρειαστεί και αποφεύγει επαναλαμβανόμενους υπολογισμούς . Το μοίρασμα μπορεί να μειώσει το χρόνο εκτέλεσης συγκεκριμένων συναρτήσεων εκθετικά σε σχέση με άλλες μη αυστηρές στρατηγικές αποτίμησης, όπως η ((call-by-name). rdf:langString
Lazy Evaluation (bequeme [faule] Auswertung) bezeichnet in der Informatik eine Art der Auswertung von Ausdrücken, bei der das Ergebnis des auszuwertenden Ausdrucks nur so weit berechnet wird, wie es gerade benötigt wird. Ein auf logische Ausdrücke eingeschränkter Spezialfall ist die Kurzschlussauswertung, die auch in vielen nicht-lazy-Sprachen wie C oder Java implementiert ist. rdf:langString
En la teoría de lenguajes de programación, La evaluación perezosa (del inglés lazy evaluation) o llamada por necesidad es una estrategia de evaluación que retrasa el cálculo de una expresión hasta que su valor sea necesario, y que también evita repetir la evaluación en caso de ser necesaria en posterioresocasiones. Esta compartición del cálculo puede reducir el tiempo de ejecución de ciertas funciones de forma exponencial, comparado con otros tipos de evaluación. Los beneficios de la evaluación perezosa son: rdf:langString
In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing). The benefits of lazy evaluation include: Lazy evaluation is difficult to combine with imperative features such as exception handling and input/output, because the order of operations becomes indeterminate. rdf:langString
Nella programmazione, la valutazione pigra o lazy è una tecnica che consiste nel ritardare una computazione finché il risultato non è richiesto effettivamente. I benefici della valutazione pigra includono: aumento delle prestazioni per evitare calcoli non necessari, evitare condizioni di errore nella valutazione di espressioni composte, capacità di costruire strutture dati potenzialmente infinite, capacità di definire strutture di controllo come astrazioni invece che come primitive. rdf:langString
Wartościowanie leniwe (ang. lazy evaluation, ewaluacja leniwa) – strategia wyznaczania wartości argumentów funkcji tylko wtedy, kiedy są potrzebne (na żądanie). Zaletami tego podejścia są możliwość obliczenia wartości funkcji nawet wtedy, gdy nie jest możliwe wyznaczenie wartości któregoś z jej argumentów, o ile tylko nie jest on używany, wzrost wydajności dzięki uniknięciu wykonywania niepotrzebnych obliczeń oraz możliwość tworzenia nieskończonych struktur danych. Wadą wartościowania leniwego jest to, że mogą nie wystąpić (być może oczekiwane) skutki uboczne procesu wyznaczania wartości argumentów. rdf:langString
Lat beräkning (engelska: lazy evaluation eller call-by-need), även selektiv evaluering, är en optimeringsteknik för kompilatorer eller vid programmering. Tekniken bygger på att beräkning inte utförs förrän resultatet behövs för andra beräkningar. Motsatsen till lat beräkning är ivrig beräkning (eager evaluation), även kallat strikt beräkning (strict evaluation). rdf:langString
В теорії мов програмування, ліниві обчислення, або виклик за потребою — це стратегія обчислення при якій обчислення виразу не виконується до того моменту, поки значення виразу не стане потрібним та уникаються повторні обчислення. Перевагами лінивих обчислень є: * можливість визначити потік керування як абстракції замість примітивів; * можливість визначати потенційно нескінченні структури даних. Це дозволяє реалізовувати деякі алгоритми більш прямолінійно; * покращення продуктивності за рахунок уникання непотрібних обчислень і невиконуваних гілок в умовних виразах. rdf:langString
Ленивые вычисления (англ. lazy evaluation, также отложенные вычисления) — применяемая в некоторых языках программирования стратегия вычисления, согласно которой вычисления следует откладывать до тех пор, пока не понадобится их результат. Ленивые вычисления относятся к нестрогим вычислениям. Усовершенствованная модель ленивых вычислений — оптимистичные вычисления — переходит в разряд недетерминированных стратегий вычисления. Некоторые языки программирования, реализующие ленивые вычисления: rdf:langString
rdf:langString تثمين كسول
rdf:langString Avaluació tardana
rdf:langString Odložené vyhodnocování
rdf:langString Lazy Evaluation
rdf:langString Οκνηρή αποτίμηση
rdf:langString Evaluación perezosa
rdf:langString Évaluation paresseuse
rdf:langString Valutazione lazy
rdf:langString Lazy evaluation
rdf:langString 遅延評価
rdf:langString 느긋한 계산법
rdf:langString Luie evaluatie
rdf:langString Wartościowanie leniwe
rdf:langString Avaliação preguiçosa
rdf:langString Ленивые вычисления
rdf:langString Lat beräkning
rdf:langString 惰性求值
rdf:langString Ліниві обчислення
xsd:integer 18155
xsd:integer 1118045091
rdf:langString En programació d'ordinadors, avaluació tardana (en anglès: Lazy evaluation) és la tècnica de retardar un càlcul fins que se'n requereixi el resultat. Els beneficis de l'avaluació tardana inclouen: * augment de rendiment en evitar el càlcul d'expressions no requerides, evitant a més els errors que s'hi puguin produir. * capacitat de construir estructures de dades de llargada infinita * capacitat de definir estructures de control com a abstraccions en comptes de comandes. El contrari de l'avaluació tardana és l'avaluació primerenca (en anglès: eager evaluation), també anomenada avaluació estricta, on una expressió és avaluada tan bon punt és assignada a una variable o paràmetre. L'avaluació primerenca és el comportament utilitzat en la majoria de llenguatges. L'avaluació tardana comprèn els següents tres conceptes: 1. * L'expressió només s'avalua quan és requerida per la funció que la requereix (avaluació retardada). 2. * L'expressió només s'avalua fins a l'extensió requerida (avaluació curtcircuitada) 3. * L'expressió mai no s'avalua més d'una vegada (avaluació en l'ordre aplicatiu) El llenguatge Haskell utilitza majoritàriament l'avaluació tardana. Altres llenguatges com OCaml, Scheme i altres la incorporen de manera opcional, mitjançant construccions explícites.
rdf:langString Odložené vyhodnocování (anglicky lazy evaluation nebo call-by-need, česky též líné vyhodnocování) je v programování vyhodnocovací strategie, při které je vyhodnocení výrazu odloženo až do okamžiku, kdy je jeho hodnota skutečně potřebná (nestriktní vyhodnocování). Často se také vyhýbá se opakovanému vyhodnocování. Sdílení může zkrátit čas běhu určitých funkcí o exponenciální faktor oproti jiným nestriktním strategiím vyhodnocování např. . K výhodám odloženého vyhodnocování patří: * Možnost definovat řídicí struktury jako abstrakce nikoli jako primitiva. * Možnost definovat potenciálně nekonečné datové struktury. To umožňuje přímočařejší implementaci některých algoritmů. * Zvýšení výkonnosti neprováděním nepotřebných výpočtů a zabránění chybovým stavům při vyhodnocování složených výrazů. Odložené vyhodnocování se často kombinuje s , jak popisuje Jon Bentley ve své knize Writing Efficient Programs. Když je hodnota funkce vypočítána pro určitý parametr nebo sadu parametrů, je výsledek uložen do vyhledávací tabulky, která je indexovaná hodnotami těchto parametrů; při dalším vyvolání funkce se zjistí, zda tabulka výsledek pro tuto kombinaci hodnot parametrů již neobsahuje. Pokud ano, bude jednoduše vrácen uložený výsledek. Pokud ne, provede se vyhodnocení funkce, a získaná hodnota bude přidána do vyhledávací tabulky pro případné opakované použití. Odložené vyhodnocování může vést ke zmenšení zabrané paměti, protože hodnoty se vytvářejí, až když jsou potřebné. Odložené vyhodnocování se však obtížně kombinuje s imperativními vlastnostmi jako je například zpracovávání výjimek a vstupně-výstupní operace, protože řád operace se stane neurčitým. Odložené vyhodnocování může způsobovat úniky paměti. Opakem odloženého vyhodnocování je okamžité (striktní, hladové, dychtivé) vyhodnocování (anglicky eager evaluation), které se používá ve většině imperativních programovacích jazyků.
rdf:langString في ، إنَّ التثمين الكسول (بالإنجليزية: Lazy evaluation)‏ أو الاستدعاء عند الحاجة (بالإنجليزية: call-by-need)‏، هي تؤخِّر تثمين لحين احتياج قيمته وَتتجنّب بذلك -مُشاركة- التَثمينات المُتكرِّرة. يُمكن للمُشاركة إنقاص وقت تشغيل دوال مُعيَّنة بعاملٍ أُسِّي على استراتيجيَّات التثمين غير الصارم، مثل . تتضمَّن منافع التثمين الكسول: * القدرة على تعريف بُنى تدفق السيطرة بتجريدٍ بدلًا من أن تكون مُدمجة. * القدرة على تعريف بُنى بيانات ، يسمح هذا بتنفيذ دقيق للمزيد من الخوارزميَّات. * زيادة الأداء بتجنُّب الحسابات غير الضروريَّة وَالأخطاء في حالة تثمين التعابير المُركَّبة. غالبًا ما يُدمَج التثمين الكسول مع (memoization أو memoisation)، كما قد ذُكِر في «كتابة برامج كفء»(Writing Efficient Programs) ، غالبًا ما يُدمَج التثمين الكسول مع التذكُّر. بعد أن تُحوسب قيمة الدالَّة من أجل مُعطىً أو مجموعة من المُعطيات، فإنَّ النَّتيجة تُخَزَّن في جدول المُشاهدات المُفَهرَس وفق قيم المُعطيات؛ وفي المرَّة القادمة الَّتي سَتُستَدعى فيها الدالَّة سيتم تفقُّد الجدول لتحديد فيما إذا كانت نتيجة قيم المُعطيات متوفِّرةً بالفعل أم لا. عندها وببساطة سَتُعاد قيمة النتيجة المُخَزَّنة وَإن كان العكس فَسيتم تثمين الدالَّة وَيُضاف مُدخَل جديد إلى جدول المُشاهدات لِيُعاد استخدامه لاحقًا. قد يؤدِّي التثمين الكسول إلى نقص في الذكرة اللّازمة للبرامج(المحجوزة لها)؛ لأنَّ القيم تُنسَئ عند الحاجة إليها. ومن الصَّعب دمج التثمين الكسول مع المَزايا الأمريَّة مثل وَالدخل/الخرج، لأنّ ترتيب العمليّات يصبح غيرَ مُحدَّدٍ. وَقد يسبّب التثمين الكسول تسرب الذاكرة. عكس التثمين الكسول هو «»(eager evaluation)؛ وَأحيانًا يُعرَف باسم التثمين الصارم(strict evaluation). ولقد وظِّف التثمين اللَّهوف كاستراتيجيّة تثمين في أغلب لُغات البرمجة.
rdf:langString Στη θεωρία των γλωσσών προγραμματισμού, η οκνηρή αποτίμηση (lazy evaluation) ή κλήση κατ' ανάγκη (call-by-need) είναι μια (evaluation strategy) που καθυστερεί την αποτίμηση μιας έκφρασης μέχρι αυτή να χρειαστεί και αποφεύγει επαναλαμβανόμενους υπολογισμούς . Το μοίρασμα μπορεί να μειώσει το χρόνο εκτέλεσης συγκεκριμένων συναρτήσεων εκθετικά σε σχέση με άλλες μη αυστηρές στρατηγικές αποτίμησης, όπως η ((call-by-name). Τα πλεονεκτήματα της οκνηρής αποτίμησης περιλαμβάνουν μεταξύ άλλων: την ελάττωση του χρόνου εκτέλεσης (επειδή αποφεύγονται υπολογισμοί που δε χρειάζονται), λιγότερες εκφράσεις λαθών κατά την αποτίμηση σύνθετων εκφράσεων, τη δυνατότητα κατασκευής δυνητικά άπειρων δομών δεδομένων, και τη δυνατότητα ορισμού των σαν αφαιρέσεις (abstractions), αντί για ενσωματωμένες εντολές. Η οκνηρή αποτίμηση μπορεί να οδηγήσει σε λιγότερη χρήση μνήμης, επειδή οι τιμές δημιουργούνται μόνο όταν χρειάζονται. Η οκνηρή αποτίμηση όμως είναι δύσκολο να συνδυαστεί με προστακτικά χαρακτηριστικά όπως ο και η , γιατί δεν είναι εύκολο να προσδιοριστεί η σειρά εκτέλεσης. Επίσης η αποσφαλμάτωση γίνεται πιο δύσκολη. Το αντίθετο της οκνηρής αποτίμησης είναι η (eager evaluation), γνωστή και ως (strict evaluation). Η αυστηρή αποτίμηση χρησιμοποιείται πιο συχνά στις γλώσσες προγραμματισμού.
rdf:langString Lazy Evaluation (bequeme [faule] Auswertung) bezeichnet in der Informatik eine Art der Auswertung von Ausdrücken, bei der das Ergebnis des auszuwertenden Ausdrucks nur so weit berechnet wird, wie es gerade benötigt wird. Ein Vorteil einer solchen Auswertungsstrategie ist Zeitersparnis, da Funktionsaufrufe ganz vermieden oder zumindest teilweise eingespart werden können. Außerdem gibt Lazy Evaluation dem Programmierer die Möglichkeit, unendliche Datenstrukturen zu verwenden. Ein Nachteil ist die erschwerte Fehlerbereinigung in Programmen, die lazy evaluiert werden. Oft ist nicht auf den ersten Blick nachvollziehbar, ob ein Ausdruck zu einem bestimmten Zeitpunkt bereits ausgewertet wurde. Dies ist insbesondere dann problematisch, wenn Funktionsaufrufe eine Nebenwirkung haben können. Ein auf logische Ausdrücke eingeschränkter Spezialfall ist die Kurzschlussauswertung, die auch in vielen nicht-lazy-Sprachen wie C oder Java implementiert ist.
rdf:langString En la teoría de lenguajes de programación, La evaluación perezosa (del inglés lazy evaluation) o llamada por necesidad es una estrategia de evaluación que retrasa el cálculo de una expresión hasta que su valor sea necesario, y que también evita repetir la evaluación en caso de ser necesaria en posterioresocasiones. Esta compartición del cálculo puede reducir el tiempo de ejecución de ciertas funciones de forma exponencial, comparado con otros tipos de evaluación. Los beneficios de la evaluación perezosa son: * El incremento en el rendimiento al evitar cálculos innecesarios, y en tratar condiciones de error al evaluar expresiones compuestas. * La capacidad de construir estructuras de datos potencialmente infinitas. * La capacidad de definir estructuras de control como abstracciones, en lugar de operaciones primitivas. Este método de evaluación es comúnmente implementado encapsulando cada expresión en una función que, cuando sea computada, devolverá el valor deseado de la expresión. De esta manera, cuando el resultado sea necesitado, la función creada será ejecutada para conseguirlo. La evaluación perezosa puede también reducir el consumo de memoria de una aplicación, ya que los valores se crean solo cuando se necesitan. Sin embargo, es difícil de combinar con las operaciones típicas de programación imperativa, como el manejo de excepciones o las operaciones de entrada/salida, porque el orden de las operacionespuede quedar indeterminado. Además, la evaluación perezosa puede conducir a fragmentar la memoria. La evaluación perezosa es frecuentemente combinada con memoización, tal y como lo describe Jon Bentley en Writing Efficient Programs​ (Escribiendo Programas Eficientes). Después de que el valor de una función sea computado para un parámetro o una serie de estos, el resultado es almacenado en una tabla de consulta que está organizada por los valores de estos parámetros; la próxima vez que se le llama a la función, la tabla es consultada para determinar si el resultado para esa combinación de parámetros está disponible. Si es el caso, la función devuelve dicho resultado. Si no, la función es evaluada y otro elemento es añadido a la tabla para reutilización posterior. Lo contrario de la evaluación perezosa sería la evaluación acaparadora, o evaluación estricta, que es el modo de evaluación por defecto en la mayoría de los lenguajes de programación.
rdf:langString In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations (sharing). The benefits of lazy evaluation include: * The ability to define control flow (structures) as abstractions instead of primitives. * The ability to define potentially infinite data structures. This allows for more straightforward implementation of some algorithms. * The ability to define partially-defined data structures where some elements are errors. This allows for rapid prototyping. Lazy evaluation is often combined with memoization, as described in Jon Bentley's Writing Efficient Programs. After a function's value is computed for that parameter or set of parameters, the result is stored in a lookup table that is indexed by the values of those parameters; the next time the function is called, the table is consulted to determine whether the result for that combination of parameter values is already available. If so, the stored result is simply returned. If not, the function is evaluated and another entry is added to the lookup table for reuse. Lazy evaluation is difficult to combine with imperative features such as exception handling and input/output, because the order of operations becomes indeterminate. The opposite of lazy evaluation is eager evaluation, sometimes known as strict evaluation. Eager evaluation is the evaluation strategy employed in most programming languages.
rdf:langString L’évaluation paresseuse (en anglais : lazy evaluation), appelée aussi appel par nécessité ou évaluation retardée est une technique d'implémentation des programmes récursifs pour laquelle l'évaluation d'un paramètre de fonction ne se fait pas avant que les résultats de cette évaluation ne soient réellement nécessaires. Ces résultats, une fois calculés, sont préservés pour des réutilisations ultérieures. Dans un langage comme Haskell, l'évaluation est paresseuse par défaut.
rdf:langString 遅延評価(ちえんひょうか、英: lazy evaluation)や必要呼び(ひつようよび、英: call-by-need)は評価戦略の一種類であり、非正格な関数型言語で使用もされる。対義語は先行評価(英: eager evaluation)。
rdf:langString 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과값이 필요할 때까지 계산을 늦추는 기법이다. 두 가지 관련된 항목들이 있는데 지연 계산법과 최소 계산법이다. 느긋하게 계산하면 필요없는 계산을 하지 않으므로 실행을 더 빠르게 할 수 있고, 복합 수식을 계산할 때 오류 상태를 피할 수 있고, 무한 자료 구조를 쓸 수 있고, 미리 정의된 것을 이용하지 않고 보통 함수로 를 정의할 수 있다. 느긋한 계산법을 사용하는 언어들은 "이름으로 호출"하거나 "필요할 때 호출"하는 계산 전략을 사용하는 것으로 나눌 수 있다. 하스켈과 같은 대부분의 실제 느긋한 언어들은 성능상의 이유로 "필요할 때 호출" 전략을 사용한다. 그러나 느긋한 계산법을 이론적으로 표현한 것들은 간편하게 "이름으로 호출"하기도 한다. 느긋한 계산법의 반대되는 계산법은 조급한 계산법이 있는데 엄격한 계산법이라고도 한다. 조급한 계산법은 대부분의 프로그래밍 언어가 동작하는 방식이다.
rdf:langString Nella programmazione, la valutazione pigra o lazy è una tecnica che consiste nel ritardare una computazione finché il risultato non è richiesto effettivamente. I benefici della valutazione pigra includono: aumento delle prestazioni per evitare calcoli non necessari, evitare condizioni di errore nella valutazione di espressioni composte, capacità di costruire strutture dati potenzialmente infinite, capacità di definire strutture di controllo come astrazioni invece che come primitive. I linguaggi che effettuano una valutazione lazy possono essere ulteriormente suddivisi in linguaggi che utilizzano una strategia di valutazione e quelli che utilizzano una strategia . I linguaggi lazy più realistici, quali l'Haskell, utilizzano call-by-need per ragioni di prestazioni, mentre linguaggi più teorici fanno uso della strategia call-by-name per questioni di semplicità. L'opposto della valutazione lazy è la valutazione eager, a volte nota come valutazione stretta (strict evaluation). La valutazione eager mira a determinare il valore di una computazione il prima possibile, anche se esso non è richiesto in quel momento. Questo è il comportamento tipico della maggior parte dei linguaggi di programmazione.
rdf:langString In programmeertalen is luie evaluatie (in het Engels: lazy evaluation) een evaluatie-strategie. Het wordt soms ook Call-by-need genoemd. Het idee is dat een uitdrukking pas geëvalueerd wordt wanneer ze daadwerkelijk nodig is. Voorbeelden van programmeertalen die een luie evaluatie hanteren zijn Haskell en Scala.
rdf:langString Wartościowanie leniwe (ang. lazy evaluation, ewaluacja leniwa) – strategia wyznaczania wartości argumentów funkcji tylko wtedy, kiedy są potrzebne (na żądanie). Zaletami tego podejścia są możliwość obliczenia wartości funkcji nawet wtedy, gdy nie jest możliwe wyznaczenie wartości któregoś z jej argumentów, o ile tylko nie jest on używany, wzrost wydajności dzięki uniknięciu wykonywania niepotrzebnych obliczeń oraz możliwość tworzenia nieskończonych struktur danych. Wadą wartościowania leniwego jest to, że mogą nie wystąpić (być może oczekiwane) skutki uboczne procesu wyznaczania wartości argumentów. Przeciwieństwem wartościowania leniwego jest wartościowanie zachłanne, stosowane w większości popularnych języków programowania. Przykładem wartościowania leniwego jest obsługa operatorów logicznych w większości języków programowania. Wyrażenie w języku C postaci: a = funkcja_B(b) || funkcja_C(c) ? b : c; Przypisanie do zmiennej a wartości b nastąpi gdy: * funkcja_B(b) zwróci prawdę, wtedy funkcja_C(c) nie zostanie wykonana * funkcja_B(b) zwróci fałsz, a funkcja_C(c) zwróci prawdę W pierwszym przypadku nie nastąpi wywołanie funkcji funkcja_C(c) w związku z czym nie nastąpią jej efekty uboczne. W podobny sposób wykonany zostanie kod: a = funkcja_B(b) && funkcja_C(c) ? b : c; Przypisanie do zmiennej a wartości c nastąpi gdy: * funkcja_B(b) zwróci fałsz, wtedy funkcja_C(c) nie zostanie wykonana * funkcja_B(b) zwróci prawdę, a funkcja_C(c) zwróci fałsz Z tego typu leniwego wartościowania korzysta idiom perla postaci: funkcja(X) || die("mamy problem"); który określa, że jeżeli funkcja(X) nie zwróci prawdy, to znaczy, że mamy problem i należy zakończyć wykonanie programu. Jednak oba wzmiankowane powyżej języki dokonują zachłannej ewaluacji wywołań funkcji, ponieważ w obu językach wartości argumentów funkcji są obliczane przed jej wykonaniem. Przykładami języków stosujących leniwe wartościowanie są Haskell oraz D.
rdf:langString Avaliação preguiçosa (também conhecida por avaliação atrasada) é uma técnica usada em programação para atrasar a computação até um ponto em que o resultado da computação é considerado necessário. Os benefícios da avaliação preguiçosa incluem o aumento do desempenho ao evitar cálculos desnecessários, evitando condições de erro na avaliação de expressões compostas, a habilidade em construir estruturas de dados infinitas e a habilidade de definir estruturas do controle como funções regulares melhor que usando primitivas internas. No oposto de avaliação atrasada está avaliação ansiosa, também conhecido como avaliação rigorosa.
rdf:langString Ленивые вычисления (англ. lazy evaluation, также отложенные вычисления) — применяемая в некоторых языках программирования стратегия вычисления, согласно которой вычисления следует откладывать до тех пор, пока не понадобится их результат. Ленивые вычисления относятся к нестрогим вычислениям. Усовершенствованная модель ленивых вычислений — оптимистичные вычисления — переходит в разряд недетерминированных стратегий вычисления. Отложенные вычисления позволяют сократить общий объём вычислений за счёт тех вычислений, результаты которых не будут использованы.Программист может просто описывать зависимости функций друг от друга и не следить за тем, чтобы не осуществлялось «лишних вычислений». Ленивые вычисления естественным образом легли на функциональную парадигму программирования, поскольку функциональные языки программирования, реализующие отложенные вычисления, зарекомендовали себя как инструменты, удобные для прототипирования и быстрой разработки программного обеспечения, а также для проектирования электронно-вычислительных устройств. Некоторые языки программирования, реализующие ленивые вычисления: * Haskell — язык программирования, в котором наиболее полно реализованы отложенные вычисления, в частности, в языке нет оператора присваивания значения переменной, а только операцию определения функциональной зависимости; благодаря ленивым вычислениям в языке возможно оперирование бесконечными коллекциями. Строго говоря, Haskell — ленивый по умолчанию, он предоставляет как стандартные средства (seq, deepseq, строгое вычисление полей в алгебраических типах), так и языковые расширения (BangPatterns) для строгого вычисления. * Mathematica и Maxima допускают отложенные вычисления с помощью оператора определения «:=». * в Python, C#, Java 8 и ряде других языков ленивые вычисления реализованы с помощью функций-генераторов и ключевого слова yield. * в языках D и Scala имеется ключевое слово lazy. Для использования ленивых вычислений не обязательна встроенная поддержка на стороне языка программирования, во многих случаях отложенные вычисления могут быть реализованы любыми доступными средствами. Например, в практике многих языков широко применяется шаблон проектирования «отложенная инициализация», предписывающий переносить выполнение ресурсоёмких операций по созданию объектов или получения значения непосредственно перед использованием. Для ряда языков созданы библиотеки, обеспечивающие работу с ленивыми вычислениями, например, для JavaScript таковы , , Immutable.js и .
rdf:langString Lat beräkning (engelska: lazy evaluation eller call-by-need), även selektiv evaluering, är en optimeringsteknik för kompilatorer eller vid programmering. Tekniken bygger på att beräkning inte utförs förrän resultatet behövs för andra beräkningar. Motsatsen till lat beräkning är ivrig beräkning (eager evaluation), även kallat strikt beräkning (strict evaluation). Lat beräkning kan ge kortare beräkningstider genom att undvika beräkningar som inte behövs, och ger en möjlighet att hantera potentiellt obegränsade datastrukturer, men kan också ge en oförutsägbarhet i exekveringstid samt skapa minnesläckage.
rdf:langString 在程式語言理論中,惰性求值(英語:Lazy Evaluation),又譯為惰性计算、懒惰求值,也稱為傳需求調用(call-by-need),是一个计算机编程中的一个概念,目的是要最小化计算机要做的工作。惰性计算的最重要的好处是它可以在空间复杂度上得到极大的优化,从而可以轻易构造一个无限大的数据类型。 惰性求值的相反是及早求值,这是一个大多数编程语言,如C语言,所使用的缺省计算方式。 由于翻译问题,该词在不同语境下有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”,本条目主要内容为延迟求值,后者请参见最小化计算条目。
rdf:langString В теорії мов програмування, ліниві обчислення, або виклик за потребою — це стратегія обчислення при якій обчислення виразу не виконується до того моменту, поки значення виразу не стане потрібним та уникаються повторні обчислення. Перевагами лінивих обчислень є: * можливість визначити потік керування як абстракції замість примітивів; * можливість визначати потенційно нескінченні структури даних. Це дозволяє реалізовувати деякі алгоритми більш прямолінійно; * покращення продуктивності за рахунок уникання непотрібних обчислень і невиконуваних гілок в умовних виразах. Ліниві обчислення зазвичай комбінуються з запам'ятовуванням. Після обчислення значення функції для конкретного параметру або набору параметрів результат зберігається в таблиці, індексами якої є параметри. Коли функція буде викликана знову, буде зроблена перевірка, чи міститься вже обчислене значення функції з такими параметрами в таблиці. Якщо так, то збережений результат повертається. Якщо ні, то значення функції обчислюється і це значення додається в таблицю для повторного використання. Ліниві обчислення можуть привести до зменшення використання пам'яті, тому що значення створюються лише якщо вони потрібні. Проте ліниві обчислення важко об'єднувати з імперативним програмуванням, наприклад у випадку введення/виведення чи обробки виняткових ситуацій, тому що порядок операцій стає невизначеним. Також ліниві обчислення можуть привести до витоків пам'яті. Протилежними до лінивих обчислень є строгі обчислення, які застосовуються в більшості мов програмування.
xsd:nonNegativeInteger 30149

data from the linked data cloud