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

Использование ключевого слова var в C #
После обсуждения с коллегами использования ключевого слова var в C # 3 мне стало интересно, каково мнение людей о подходящем использовании вывода типов через var? Например, я довольно лениво использовал var в сомнительных обстоятельствах, например:...
137486 просмотров
schedule 07.02.2023

Вывод типа С#: терпит неудачу там, где не должен?
Обратите внимание на следующий код. Оскорбительная строка закомментирована. interface I<R> { } class C : I<int> { } class Program { private static void function<T, R>(T t) where T : class, I<R> { }...
638 просмотров
schedule 19.01.2023

Параметры типа и типы членов в Scala
Я хотел бы знать, как типы-члены работают в Scala и как мне связать типы. Один из подходов состоит в том, чтобы сделать связанный тип параметром типа. Преимущество этого подхода в том, что я могу задать дисперсию типа и быть уверенным, что подтип...
2496 просмотров
schedule 02.06.2022

Как работает дедукция типов в Haskell?
Я пытаюсь расширить свой кругозор, изучая Haskell. Моим самостоятельным домашним заданием было построить генератор тактовых импульсов, который давал бы мне интервалы с распределением Пуассона, и конечный результат (признаюсь, после долгой борьбы)...
938 просмотров
schedule 27.04.2022

Может ли GHCi сказать мне тип локальной функции Haskell?
Можно ли запросить у ghci тип, который он вывел для функции внутри другой функции?
712 просмотров
schedule 18.12.2022

Использование бесплатных функций в качестве псевдоконструкторов для использования вывода параметров шаблона
Является ли распространенным шаблоном/идиомой использование бесплатных функций в качестве псевдоконструкторов, чтобы избежать явного указания параметров шаблона? Например, все знают о std::make_pair , который использует свои параметры для вывода...
988 просмотров

Объясните вывод типа ML программисту на C++
Как ML выполняет вывод типа в следующем определении функции: let add a b = a + b Это похоже на шаблоны C++, где проверка типов не выполняется до момента создания экземпляра шаблона, после чего, если тип поддерживает необходимые операции,...
1597 просмотров

Проектирование удобной карты со значением по умолчанию в Scala
Я обнаружил, что использую множество вложенных карт, например Map[Int, Map[String, Set[String]]], и я хотел бы, чтобы новые карты, наборы и т. д. создавались автоматически при доступе к новому ключу. Например. что-то вроде следующего: val m =...
1163 просмотров
schedule 26.01.2023

Почему [String] является предполагаемым типом, если в коде нет видимых списков?
У меня есть такой тест: testReadFile = runTestTT $ TestLabel "InteractionDomain.readFileContentsToList" (TestList [ (TestLabel "testing infrastructure: read test file" (TestList [ TestCase (withTempFileContainingText (\fileHandle...
275 просмотров
schedule 25.04.2023

Введите вопрос на вывод, используя Scalaz.ListW.‹^›
Я играл с ListW.<^> , определение которого выглядит следующим образом: def <^>[B: Zero](f: NonEmptyList[A] => B): B = value match { case Nil => ∅ case h :: t => f(Scalaz.nel(h, t)) } Я не могу понять, почему...
237 просмотров
schedule 08.03.2023

Вывод типов с взаимной рекурсией
Я думал о том, как вывод типов работает в следующей программе OCaml: let rec f x = (g x) + 5 and g x = f (x + 5);; Конечно, программа совершенно бесполезна (бесконечный цикл), но как насчет типов? OCaml говорит: val f : int -> int =...
1681 просмотров
schedule 28.02.2022

Почему компилятор C # не определяет типы в этом коде автоматически?
Почему компилятор C # не делает вывод о том, что FooExt.Multiply() удовлетворяет сигнатуре Functions.Apply() ? Мне нужно указать отдельную переменную делегата типа Func<Foo,int,int> , чтобы код работал ... но похоже, что вывод типа должен...
537 просмотров
schedule 07.04.2023

Вывод типа C++0x путается с boost::enable_if
Я пытаюсь написать общую функцию фильтрации, которая выполняет линейную интерполяцию по заданной координате выборки в многомерном массиве (произвольный ранг). Для этого мне нужен шаблон рекурсивной функции, который проходит по всем измерениям...
492 просмотров
schedule 07.06.2023

Вывод универсального типа с производным типом
класс Property это abstract У меня есть следующий метод: private IPortionOfPropertyInfoAddEditView<T> getPropertyEditPortion<T>(T property) where T : Property { /*details unimportant*/ } Property P =...
670 просмотров
schedule 19.05.2023

Каковы преимущества и недостатки вывода типов в C#?
У меня есть коллега, который против вывода типов в C#. Я полагаю, что большинство его аргументов были связаны с отсутствием удобочитаемости. Мой аргумент против этого заключается в том, что функции IntelliSense Visual Studio обеспечивают простой...
2704 просмотров

Наследование интерфейса и общие интерфейсы вызывают явное приведение типов?
У меня гораздо более сложная проблема, но я свел ее к следующему простому примеру: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sandbox { class Program { static void Main(string[]...
719 просмотров

Сомнения по поводу ключевого слова 'var' и тернарного оператора ?:
Если ключевое слово var разрешается во время компиляции, как работает следующее? class A { } class B : A { } int k = 1; var x = (k < 0) ? new B() : new A(); Правка: Наконец-то я понял, что проблема не в самом var , а в поведении...
323 просмотров
schedule 10.01.2024

Почему JDK Map.get не поддерживает вывод типа возвращаемого значения
В качестве дополнительного вопроса к Что являются причинами, по которым Map.get(Object key) не является (полностью) универсальным , почему интерфейс JDK 6 и 7 Map не определяет метод "get" как универсальный метод, чтобы компилятор мог использовать...
138 просмотров
schedule 21.12.2023

Явное указание типов параметров в F#
Я пишу функцию F#, которая разлагает число на простые множители. let factors primes i = let mutable j = i for p in primes do while (j>1) && (j%p=0) do j <- j/p printfn "prime: %i" p Он...
1857 просмотров
schedule 02.03.2023

Как я могу дать механизму вывода типов некоторые подсказки?
В (очень) современном GHC я могу написать это: {-# LANGUAGE TypeFamilies #-} -- consider this part "library" code, changeable at will data Container a = Container data Element class Foo a where foo :: a -> Int instance Element ~ a => Foo...
195 просмотров