Описание тега type-signature

3 ответа

Понимание подписей типа Haskell

Я учусь на Хаскеле, и мне было интересно узнать о следующих типах подписей: Prelude> :t ($) ($) :: (a -> b) -> a -> b Prelude> Как я должен интерпретировать (не каламбур) это? Полуподобный результат также вызывает недоумение: Prelude&…
11 мар '14 в 21:38
2 ответа

Что не так с "func:: String -> [Int]; func = read "[3,5,7]""

В очень простом модуле test где у меня есть следующая функция func :: String -> [Int] func = read "[3,5,7]" Поскольку у меня есть явные аннотации типа, я ожидаю получить [3,5,7] когда я загружаю модуль test и позвонить func в ghci. Тем не менее, …
1 ответ

Подпись типа Haskell с несколькими ограничениями класса

Как я могу иметь несколько ограничений класса, так что если A является Eq а также B это NumЯ мог бы сказать либо f :: Eq a => a -> b` или же f :: Num b => a -> b Итак, как я могу иметь Eq a => а также Num b => в то же время? f :: E…
19 июн '12 в 03:03
3 ответа

Почему эта подпись типа haskell не работает?

Новый парень в Хаскеле здесь. Я пытаюсь стать лучше при написании подписей типов, а эта простая не хочет работать. Мне интересно, почему: average :: Num a => [a] -> a average ns = sum ns `div` length ns Среднее должно взять любое число и верну…
25 май '15 в 19:46
2 ответа

Функция 'a -> 'b в мл

Можно ли написать в sml/nj функцию с подписью: fn : 'a -> 'b моей первоначальной целью было сделать функцию с подписью: fn: ( 'a -> 'b ) -> ( 'b -> 'a ) -> 'a -> 'b -> 'c после многих попыток я получил: fn: ( 'a -> 'b ) ->…
10 апр '16 в 09:18
1 ответ

Каковы возможные операторы для черт в предложении where в Rust?

Я изучаю Rust и попал в главу о границах черт. В этой главе они приводят пример с + (плюс) оператор, чтобы перечислить все необходимые черты в where пункт. Какие еще операторы разрешены по чертам в Rust? Я искал, но я не смог найти никакой документа…
16 окт '17 в 21:22
2 ответа

Получение случайных чисел из немонадных функций

Поэтому моя цель - иметь возможность вызывать немонадную функцию и возвращать ей случайное значение. getNums :: [Int] -- this only works when the type signature is "IO [Int]" getNums = getListFromIO 10 getListFromIO :: Int -> IO [Int] getListFrom…
10 янв '16 в 00:04
1 ответ

Что не так с моей подписью типа получить и поставить?

Я пытаюсь сделать StateMonadPlus экземпляр MonadState, data StateMonadPlus s a = StateMonadPlus (s -> Either String (a, s)) instance MonadState s (StateMonadPlus s) where -- get :: StateMonadPlus s get = StateMonadPlus (\s -> Right (s, s)) -- …
03 окт '13 в 12:05
1 ответ

Подпись типа Fold с ограничением типа `Foldable`

На моем GHCi foldr а также foldl иметь эту подпись: Prelude> :t foldr foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b Prelude> :t foldl foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b В чем разни…
01 мар '18 в 19:44
1 ответ

Какова будет сигнатура типа функции, которая может применяться как (& f %~), так и (^. F), где операторы из библиотеки Lens?

У меня есть функция, которая получает значение из записи и устанавливает его в то же поле в другой записи. Я хочу понять, как работают механизмы, лежащие в основе этого. setToPercent perc basedOn toSetOn = setStat where baseStat = basedOn ^. _func -…
09 янв '19 в 10:12
1 ответ

Как указать сигнатуру типа, чтобы найти конкретный метод с InteractiveUtils.edit в Юлии?

Чтобы быстро найти реализацию некоторых методов, я хотел бы использовать InteractiveUtils.edit, Например, если бы я хотел увидеть реализацию methodswith Я должен быть в состоянии написать что-то вроде edit(methodswith), Тем не менее, как methodswith…
27 янв '19 в 03:55
2 ответа

Почему сигнатура типа getEvent такая?

Подпись типа для getEvent от UI.NCurses библиотека имеет тип подписи Window -> Maybe Integer -> Curses (Maybe Event) Однако, используя эту функцию кучу, я все еще не совсем уверен, что Window используется для. В документации сказано что это По…
30 янв '19 в 03:25
1 ответ

Круглая скобка вокруг символа оператора в сигнатуре типа

. :: (a -> b) -> (c -> a) -> c -> b f . g = \ x -> f (g x) Почему это определение незаконно? Эстетический выбор или формальная необходимость?
1 ответ

Дисперсия сигнатуры типа в C# относительно переопределений

Немного другой вопрос о дисперсии на этот раз. Я взял из экспериментов, что C# не позволяет вам переопределить виртуальную функцию с помощью контравариантной функции? Если да, то как вы это делаете, так как я продолжаю получать "Перегрузка подходяще…
10 дек '10 в 07:51
2 ответа

Haskell: сопоставление с образцом, идентификаторы и операторы

Я пытаюсь определить xor используя сопоставление с образцом в Haskell: (xor) :: Bool -> Bool -> Bool True xor False = True False xor True = True True xor True = False False xor False = False Однако это дает ошибку: Invalid type signature: (xor…
12 фев '13 в 16:25
1 ответ

Почему подпись типа выглядит так? (Преобразование церковного номера в Int)

Я изучаю Haskell и пытаюсь написать функцию, которая преобразует число Церкви в Int. Мой код работает, только если я не пишу сигнатуру типа. type Church a = (a -> a) -> a -> a zero :: Church a zero s z = z c2i :: Church a -> Int -- This …
27 янв '15 в 10:13
1 ответ

Типы подписи для списков и т. Д.

Как бы вы определили следующие типы подписей на простом английском языке: Ord a => ... Eq a => ... Num a => ... Не могли бы вы описать их значение и дать мне знать, в чем заключаются различия (с точки зрения того, как бы я объяснил это кому…
15 июн '11 в 03:42
3 ответа

Вопрос подписи типа haskell

Может кто-нибудь объяснить мне, почему эти функции имеют разное количество аргументов и поведение, но одну и ту же сигнатуру типа, но обе они верны? comp1 :: (a -> b) -> (b -> c) -> a -> c comp1 f g = g.f comp2 :: (a -> b) -> (b…
25 ноя '10 в 17:27
2 ответа

Как определить функцию внутри haskell newtype?

Я пытаюсь расшифровать синтаксис записи в haskell для newtype, и мое понимание нарушается, когда внутри newtype есть функция. Рассмотрим этот простой пример newtype C a b = C { getC :: (a -> b) -> a } На мой взгляд, C - это тип, который приним…
10 май '15 в 14:02
2 ответа

Как преобразовать тип аргумента в подпись замыкания в Swift?

Я пытаюсь написать легкий класс наблюдателя в Swift (в настоящее время Swift 2). Идея состоит в том, чтобы использовать его в системе Entity Component, в качестве средства связи компонентов друг с другом, не будучи связанным друг с другом. У меня пр…
28 июн '16 в 10:29