Вопросы по теме 'type-systems'

Почему алгебраические типы данных Haskell закрыты?
Поправьте меня, если я ошибаюсь, но похоже, что алгебраические типы данных в Haskell полезны во многих случаях, когда вы будете использовать классы и наследование в объектно-ориентированных языках. Но есть большая разница: как только алгебраический...
7736 просмотров

Каковы пределы вывода типов?
Каковы пределы вывода типов? Какие системы типов не имеют общего алгоритма вывода?
1443 просмотров

Каковы пределы проверки типов и систем типов?
Системы типов часто критикуют за то, что они слишком ограничивающие, то есть ограничивают языки программирования и запрещают программистам писать интересные программы. Крис Смит утверждает : Мы получаем уверенность в правильности программы...
3477 просмотров
schedule 04.11.2023

Почему я не могу использовать ключевое слово as для структуры?
Я определил следующую структуру: public struct Call { public SourceFile caller; public SourceFile callee; public Call(SourceFile caller, SourceFile callee) { this.caller = caller; this.callee = callee; } }...
14730 просмотров
schedule 09.02.2023

Почему в .NET существует null?
Почему в .NET значения могут быть нулевыми? Превосходно ли это по сравнению с гарантией, при которой все будет иметь значение, а ничто не будет равно нулю? Кто-нибудь знает, как называется каждая из этих методологий? В любом случае, я не очень...
3033 просмотров
schedule 08.10.2022

Понимание политипов в выводе типа Хиндли-Милнера
Я читаю статью в Википедии о Hindley– Вывод типа Милнера пытается разобраться в этом. Пока что я понял: Типы подразделяются на монотипы и политипы. Монотипы далее классифицируются как константы типа (например, int или string ) или как...
1908 просмотров

В чем разница между родовым и высокородным типом?
Я обнаружил, что действительно не понимаю разницы между «родовым типом» и «высшим типом». Код Scala: trait Box[T] Я определил trait с именем Box , который является конструктором типа, который принимает тип параметра T . (Правильно ли...
1701 просмотров

Как аннотировать протоколы и их методы в core.typed Clojure?
Я делаю игру в крестики-нолики и составил протокол для своей стратегии. Игра работает нормально, поэтому я хочу воспользоваться этой возможностью, чтобы отточить свои навыки core.typed. Я аннотировал протокол (как показано ниже), но когда я запускаю...
297 просмотров

Как я могу иметь тип отрицания в Scala?
Я хочу сделать что-то вроде этого: def iDontLikeStrings(arg: Not[String]) = {....} В принципе, это должно скомпилироваться: iDontLikeStrings(23) iDontLikeStrings(true) И это НЕ должно компилироваться: iDontLikeStrings("hello")
479 просмотров
schedule 17.10.2023

Почему BaseType определения универсального типа сам по себе не является определением универсального типа, когда это возможно?
В приведенном ниже примере я пытаюсь понять, почему BaseType не является определением универсального типа и, в более общем смысле, почему оно не просто равно typeof(List<>) public class MyList<T> : List<T> { } // this is...
91 просмотров
schedule 22.03.2024

Я хочу иметь тип, который соответствует каждому типу объединения, но не любому объединению этих отдельных типов.
Предположим, у меня определены следующие типы: type A = {a:number}; type B = {a:string}; type C = {a:boolean}; type All = A | B | C; Теперь я хочу определить общий тип S (без использования каких-либо типов _3 _, _ 4_ и C в определении),...
22 просмотров