Запитання з тегом «type-systems»

система типів - це сукупність правил, які присвоюють властивість, яку називають типом, різним структурам, таким як змінні, вирази, функції або модулі, з яких складається комп'ютерна програма.

10
Чи слід визначати типи для всього?
Нещодавно у мене виникла проблема з читабельністю мого коду. У мене була функція, яка робила операцію і повертала рядок, що представляє ідентифікатор цієї операції для подальшої довідки (трохи схоже на OpenFile в Windows, що повертає ручку). Користувач буде використовувати цей ідентифікатор пізніше для запуску операції та для контролю за її …
141 type-systems 

7
Динамічно проти статично типізованих досліджень мов [закрито]
Чи існують дослідження, проведені щодо ефективності мов, що стаціонарно проти динамічно набраних? Зокрема: Вимірювання продуктивності програміста Ставка дефекту Також включаючи наслідки того, застосовується чи ні одиничне тестування. Я бачив багато обговорень достоїнств будь-якої сторони, але мені цікаво, чи хтось провів дослідження з цього приводу.

4
Чи формально система типу Haskell еквівалентна Java? [зачинено]
Я усвідомлюю, що деякі речі легші / складніші в одній мові, ніж інші, але мене цікавлять лише функції, пов'язані з типом, які можливі в одній, а в іншій неможливі / неактуальні. Щоб зробити його більш конкретним, давайте ігноруємо розширення типу Haskell, оскільки там так багато, що роблять усілякі шалені / …

16
Як слід зберігати значення "невідомі" та "відсутні" у змінній, зберігаючи різницю між "невідомим" та "відсутнім"?
Вважайте це "академічним" питанням. Мені було цікаво про те, щоб час від часу уникати NULL, і це приклад, коли я не можу знайти задовільне рішення. Припустимо, що я зберігаю вимірювання там, де іноді відомо, що вимірювання неможливе (або відсутнє). Я хотів би зберегти це "порожнє" значення у змінній, уникаючи NULL. …

10
Чому основні сильні статичні мови OOP заважають успадковувати примітиви?
Чому це нормально і в основному очікується: abstract type Shape { abstract number Area(); } concrete type Triangle : Shape { concrete number Area() { //... } } ... поки це не нормально, і ніхто не скаржиться: concrete type Name : string { } concrete type Index : int { …

14
Коли проводиться тестування типу?
Припустимо, що мова має певну безпеку типу (наприклад, не JavaScript): З огляду на метод, який приймає a SuperType, ми знаємо, що в більшості випадків, коли ми можемо спокуситися виконати тестування типу, щоб вибрати дію: public void DoSomethingTo(SuperType o) { if (o isa SubTypeA) { o.doSomethingA() } else { o.doSomethingB(); } …

5
Як мови з типами Maybe замість нулів обробляють крайові умови?
Ерік Ліпперт зробив дуже цікавий момент у своїй дискусії про те, чому C # використовує, nullа не Maybe<T>тип : Послідовність системи типів важлива; чи можемо ми завжди знати, що нерегульована посилання ніколи за жодних обставин не виявляється недійсною? А як щодо конструктора об'єкта з ненульовим полем опорного типу? А як …

3
Що таке система типів?
Фон Я проектую мову, як побічний проект. У мене є робочий асемблер, статичний аналізатор і віртуальна машина для цього. Оскільки я вже можу компілювати та запускати нетривіальні програми, використовуючи побудовану інфраструктуру, я подумав над тим, щоб подати презентацію у своєму університеті. Під час своєї розмови я зазначив, що VM забезпечує …

8
Чи є причина мати нижній тип мови програмування?
Нижній тип - це конструкція, головним чином з'являється в математичній теорії типів. Його ще називають порожнім типом. Це тип, який не має значень, але є підтипом усіх типів. Якщо тип повернення функції - це нижній тип, це означає, що він не повертається. Період. Можливо, він зациклюється назавжди, або, можливо, це …

8
Які переваги безпеки системи типу?
У JavaScript: Добрі частини Дугласа Крокфорда, він згадує у своїй главі про спадщину, Інша перевага класичного успадкування полягає в тому, що воно включає специфікацію системи типів. Це здебільшого звільняє програміста від необхідності писати явні операції кастингу, що є дуже хорошою справою, оскільки під час трансляції втрачаються переваги безпеки типової системи. …

7
Введіть змінні кастингу в PHP, що є практичною причиною цього?
PHP, як більшість із нас знає, має слабку типізацію . Для тих, хто цього не робить, PHP.net каже: PHP не вимагає (або підтримує) явного визначення типу в оголошенні змінної; Тип змінної визначається контекстом, в якому використовується змінна. Любіть це або ненавидите його, PHP повторно передає змінні на ходу. Отже, дійсний …

5
Чому Java не вводить умовивід?
Мені завжди було цікаво, чому Java не робить умовивід, враховуючи, що мова є такою, якою вона є, і її VM дуже зрілий. Google's Go - це приклад мови з чудовим виведенням тексту, і це зменшує кількість набраних тексту. Чи є якась особлива причина того, що ця функція не є частиною …

2
Чому (або чому ні) екзистенційні типи вважаються поганою практикою функціонального програмування?
Які методики я можу використовувати, щоб послідовно рефакторний код видалити залежність від екзистенційних типів? Зазвичай вони використовуються для дискваліфікації небажаних конструкцій вашого типу, а також для забезпечення споживання з мінімальними знаннями про даний тип (або так я розумію). Хто-небудь придумав простий послідовний спосіб зняти залежність від них у коді, який …


6
Чому корисний висновок типу?
Я читаю спосіб коду частіше, ніж пишу код, і я припускаю, що це робить більшість програмістів, що працюють над промисловим програмним забезпеченням. Перевага виводу типу, який я припускаю, - менша багатослівність і менше написаного коду. Але з іншого боку, якщо ви читаєте код частіше, ви, ймовірно, захочете читати код. Компілятор …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.