Запитання з тегом «invariants»

6
Що таке інваріанти, як їх можна використовувати та чи використовували ви коли-небудь у своїй програмі?
Я читаю кодери на роботі , і в ньому багато розмов про інваріантів. Наскільки я це зрозумів, інваріант - це стан, який має місце і до, і після виразу. Вони, серед іншого, корисні для доведення правильності циклу, якщо я правильно запам'ятав свій курс логіки. Чи правильний мій опис, чи я …
48 invariants 

6
Цикл foreach з розривом / поверненням проти циклу while з явним інваріантом та пост-умовою
Це найпопулярніший спосіб (мені здається) перевірити, чи є значення в масиві: for (int x : array) { if (x == value) return true; } return false; Однак у книзі, яку я багато років тому читав, напевно, Вірт або Дайкстра, було сказано, що цей стиль кращий (у порівнянні з циклом "час" …

5
Чому важливі інваріанти в інформатиці
Я розумію «інваріант» у прямому сенсі. Я також розпізнаю їх під час введення коду. Але я не думаю, що я розумію важливість цього терміна в контексті інформатики. Щоразу, коли я читаю бесіди \ довідки про дизайн мови від відомих програмістів \ комп'ютерних працівників, термін "інваріант" постійно з'являється як жаргон; і …

1
Об'єкти життєвих інваріантів проти семантики переміщення
Коли я давно вивчив C ++, мені було наголошено, що частина пункту C ++ полягає в тому, що так само, як петлі мають "петлю-інваріанти", класи також мають інваріанти, пов'язані з життям об'єкта - речі, які повинні бути правдивими доки об’єкт живий. Речі, які повинні бути встановлені конструкторами, а збережені методами. …

3
Яка відповідь на функціональне програмування на основі типових інваріантів?
Мені відомо, що концепція інваріантів існує в декількох парадигмах програмування. Наприклад, циклічні інваріанти є актуальними в ОО, функціональному та процедурному програмуванні. Однак один дуже корисний вид, знайдений в ООП, є інваріантом даних певного типу. Це те, що я називаю "типовими інваріантами" у назві. Наприклад, Fractionтип може мати numeratorа denominator, з …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.