Вопросы по теме '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 просмотров
schedule
26.11.2022
Объясните вывод типа ML программисту на C++
Как ML выполняет вывод типа в следующем определении функции:
let add a b = a + b
Это похоже на шаблоны C++, где проверка типов не выполняется до момента создания экземпляра шаблона, после чего, если тип поддерживает необходимые операции,...
1597 просмотров
schedule
02.01.2023
Проектирование удобной карты со значением по умолчанию в 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 просмотров
schedule
27.03.2023
Наследование интерфейса и общие интерфейсы вызывают явное приведение типов?
У меня гораздо более сложная проблема, но я свел ее к следующему простому примеру:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sandbox
{
class Program
{
static void Main(string[]...
719 просмотров
schedule
14.06.2022
Сомнения по поводу ключевого слова '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 просмотров
schedule
21.06.2023