Публикации по теме 'type-systems'


О компиляторах и их психологических сверхспособностях
О компиляторах и их психологических сверхспособностях Я часто думаю о том, что вас может волновать лишь определенное количество вещей. Некоторые люди описывают это как количество траха, которое они должны дать, а обычно это конечное количество. С годами моей (короткой) карьеры я все больше ощущал актуальность этой концепции для разработки программного обеспечения. Хотя они - лишь часть головоломки, я считаю, что компиляторы и системы типов могут избавить от значительного количества..

Дискриминационные союзы в C # - необычная история любви
Не секрет, что программисты любят думать только о счастливых путях, а иногда и только о счастливых путях. В конце концов, это интересная часть работы, которая в большинстве случаев отражает четко определенную бизнес-логику. Однако именно случаи ошибок приводят к перебоям в обслуживании, головным болям и звонкам в службу поддержки в ночное время. Выявление способов лучше и всесторонне обрабатывать случаи ошибок - важная часть того, чем занимается программная инженерия. В недавнем..

От бэкенда к внешнему типизированному приложению с GraphQL
TLDR; Система типов GraphQL и удаленное выполнение процедур позволяют нам легко контролировать типы входящих данных. В этом посте мы увидим, как настроить простой GraphQL-сервер (с graphql-js ) и запросить некоторые данные с помощью приложения React . Чтобы воспользоваться преимуществом внешнего интерфейса типизации GraphQL, мы будем использовать graphql-code-generator для отражения типов из внутренней схемы во внешний интерфейс. При этом у нас будет более уверенный опыт..

Веселые времена с продвинутым TypeScript
Эта статья предназначена для людей, которые знают основы TypeScript, но не использовали его в большом проекте и / или не исследовали его расширенные типы. Моя цель - убедить вас на множестве примеров, что мощная продвинутая система типов TypeScript может обеспечить удовлетворительные решения сложных проблем веб-инженерии и может использоваться для умопомрачительного и увлекательного моделирования. Посмотрите видео и ознакомьтесь с фрагментами кода ниже: Строительные блоки Эти типы..

Сила условных типов в Typescript
Одной из самых любимых систем типов в мире javascript является система типов typescript. Он имеет множество функций. Одна из функций, которую мы сегодня обсуждаем, называется условными типами . Условные типы очень похожи на тернарный оператор JavaScript. В зависимости от условия Typescript решит, какой тип можно присвоить переменной. Условные типы в основном работают с дженериками . Несколько слов о дженериках Дженерики создаются для работы с различными типами. Рассмотрим..

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

Возможности языка для реализации реляционной алгебры
Я пытался закодировать реляционную алгебру в Scala (которая, насколько мне известно, имеет одну из самых продвинутых систем типов) и, похоже, просто не нашел способ добраться туда, куда я хочу. Поскольку я не очень разбираюсь в академической...
1223 просмотров

Тип Haskell против нового типа в отношении безопасности типов
Я знаю, что newtype чаще сравнивают с data в Haskell, но я представляю это сравнение скорее с точки зрения дизайна, чем как техническую проблему. В империтивных/объектно-ориентированных языках существует анти-шаблон " примитивная одержимость ",...
10144 просмотров
schedule 19.03.2022

тип системы. Коллекция ‹T›
Я создаю список из <T> , но я хочу знать тип этого Т-объекта. (Я использую отражение в своем проекте, поэтому я не знаю тип, когда создаю свой код. Итак, сначала у меня есть мои List -> List<T> значения Теперь я хочу получить...
238 просмотров
schedule 11.07.2023

Необходимые предложения: альтернативой перегрузке являются операторы and as в .NET
Я надеюсь, что этот вопрос не сочтут слишком субъективным - я не жду окончательного ответа, но надеюсь, что мнение каждого по крайней мере поможет мне сформировать мое собственное. Я реализую систему настраиваемых типов, которая является...
384 просмотров
schedule 20.06.2023

Использование системы типов Haskell для обеспечения модульности
Я думаю о способах использования системы типов Haskell для обеспечения модульности в программе. Например, если у меня есть веб-приложение, мне интересно, есть ли способ отделить весь код базы данных от кода CGI, от кода файловой системы и от чистого...
743 просмотров
schedule 15.07.2022

Существуют ли языки с динамической типизацией, не допускающие слабой типизации?
Например, добавление (ранее необъявленного) int и строки в псевдокоде: x = 1; y = "2"; x + y = z; Я видел строго типизированные языки, которые не позволяли добавлять эти два типа, но они также статически типизированы, поэтому невозможно иметь...
163 просмотров
schedule 29.04.2022

Есть ли в C# аналог структурной типизации Scala?
В Scala я могу определить структурные типы следующим образом: type Pressable = { def press(): Unit } Это означает, что я могу определить функцию или метод, который принимает в качестве аргумента что-то, что является Pressable, например:...
2403 просмотров

Эквивалент Scala Hoogle?
Hoogle позволяет выполнять поиск во многих стандартных библиотеках Haskell либо по имени функции, либо по приблизительной сигнатуре типа. Я считаю это очень полезным. Есть ли что-нибудь похожее на Hoogle для Scala? Поиск в ScalaDoc 2 находит...
3230 просмотров
schedule 03.06.2022

Список экзистенциально количественных значений в Haskell
Мне интересно, почему этот фрагмент кода не проверяет тип: {-# LANGUAGE ScopedTypeVariables, Rank2Types, RankNTypes #-} {-# OPTIONS -fglasgow-exts #-} module Main where foo :: [forall a. a] foo = [1] ghc жалуется: Could not deduce (Num...
617 просмотров

Существует ли язык программирования, в котором типы могут быть параметризованы значениями?
Параметризованные типы, такие как шаблоны C++, — это хорошо, но в большинстве случаев они могут быть параметризованы только другими типами. Однако в C++ есть особый случай, когда шаблон можно параметризовать целым числом. Например, массивы...
403 просмотров
schedule 20.09.2022

Функции типа F# и атрибут [‹GeneralizableValue›]
В чем разница между этими двумя функциями типа F #: let defaultInstance1<'a when 'a:(new: unit->'a)> = new 'a() [<GeneralizableValue>] let defaultInstance2<'a when 'a:(new: unit->'a)> = new 'a()
502 просмотров
schedule 28.05.2023

Множественные нижние границы типов в Scala
Я заметил, что tuple.productIterator всегда возвращает Iterator[Any] , и задался вопросом, нельзя ли установить несколько нижних границ (так что это может быть итератор самого низкого общего супертипа). Я пробовал и искал немного, но нашел...
2609 просмотров
schedule 31.03.2022

Почему кастинг enum разрешен, даже если в перечислении не определено допустимое значение
При чтении ответа Джона Скита на этот конкретный вопрос Как я могу сделать так, чтобы мои переменные класса могли быть установлены только на один из трех вариантов? вы узнали что-то новое, о чем я не знал в C#, и я предполагаю, что система типов...
594 просмотров
schedule 25.10.2022

Компилятор Scala не может вывести параметры типа
Чтобы создать DSL для моего нового проекта Scala, я написал следующий код: trait DocDB[O] { def searchFor[I] (docs: Iterable[I], queryStrategy: QueryStrategy[I, DocDB[_]]): Iterable[(I,O)] } trait QueryStrategy[I, +F <: DocDB[_]] class In...
250 просмотров
schedule 11.04.2023

Какое свойство системы типов Scala делает ее полной по Тьюрингу?
Scala использует систему типов, основанную на System F ω, о которой обычно говорят, что она является строго нормализующей. Строгая нормализация подразумевает не-тьюринговскую полноту. Тем не менее, система типов Scala является полной по Тьюрингу....
894 просмотров

Какова теоретическая основа экзистенциальных типов?
Haskell Wiki хорошо объясняет, как использовать экзистенциальные типы, но я не совсем разбирайтесь в теории, стоящей за ними. Рассмотрим этот пример экзистенциального типа: data S = forall a. Show a => S a -- (1) чтобы...
4221 просмотров

Почему определение функции для всех типов одновременно не разрешено в Haskell?
Это, наверное, очень простой вопрос, но... Функция, которая определяется, скажем, как foo :: a -> Integer обозначает функцию от любого типа до Integer. Если это так, то теоретически можно определить его для любого типа, например...
1483 просмотров
schedule 03.12.2022

Имя привязки в подписи типа с использованием DataKind
Итак, я наконец нашел задачу, в которой я мог бы использовать новое расширение DataKinds (используя ghc 7.4.1). Вот Vec , который я использую: data Nat = Z | S Nat deriving (Eq, Show) data Vec :: Nat -> * -> * where Nil :: Vec Z a...
799 просмотров
schedule 18.04.2022

Не удалось сопоставить с HList
Я пытался решить эту проблему с помощью shapeless. Однако я по какой-то причине не могу сопоставить HList . Я позволю коду говорить самому за себя. import shapeless._ import HList._ case class Foo(a: Option[Int], b: Option[Int]) val a =...
1014 просмотров
schedule 07.04.2022

Аннотации программного типа в Haskell
При метапрограммировании может быть полезно (или необходимо) передать в систему типов Haskell информацию о типах, которые известны вашей программе, но не выводятся в Hindley-Milner. Есть ли в Haskell библиотека (или расширение языка и т. Д.), Которая...
1305 просмотров