Вопросы по теме 'typed-racket'

Как написать функции более высокого порядка, которые принимают полиморфные функции в качестве аргументов в Typed Racket?
Например, как мне написать версию map , которая будет работать с полиморфными функциями в Typed Racket? Я использую простую функцию id , определенную как: (: id : (All (A) A -> A)) (define (id x) x) Когда я пытаюсь сопоставить его со...
773 просмотров

Отношение подтипов между типами структур в typed/racket
Если в typed/racket я определяю три struct : (struct: foo ([a : Number])) (struct: bar ([b : String])) (struct: st ([a : Number] [b : String] [c : Number])) Как сделать так, чтобы st был одновременно подтипом foo и bar , чтобы работали...
167 просмотров

Почему `filter` работает с типизацией более высокого порядка?
На главной странице Racket они показывают этот пример: #lang typed/racket ;; Using higher-order occurrence typing (define-type SrN (U String Number)) (: tog ((Listof SrN) -> String)) (define (tog l) (apply string-append (filter string? l)))...
134 просмотров

Как определить экземпляр полиморфной структуры данных Union в Typed Racket?
Из Руководства по типизированному рэкету , чтобы определить тип объединения, просто используйте (define-type Some-Type (U Type1 Type2)) . Чтобы определить полиморфные структуры данных, используйте что-то вроде (define-type (Opt a) (U ...)) ....
198 просмотров
schedule 18.06.2022

Сумма списка со всеми промежуточными значениями
Я пытаюсь вычислить сумму списка со всеми промежуточными значениями на этом пути. Мой код выглядит следующим образом, но он не работает. (: sums : (Listof Integer) -> (Listof Integer)) ;; compute the sum of a list, ;; produce all the...
591 просмотров

Несоответствие типов в векторном перекрестном произведении
Мне нужно сделать векторное перекрестное произведение в typed/racket. Следующий код отлично работает в #lang racket без аннотаций типов. ссылка #lang typed/racket (: cross-product (-> VectorTop VectorTop VectorTop)) (define...
159 просмотров
schedule 30.12.2022

Typed Racket конвертировать Any to All (a)
Я пытаюсь вызвать take на выходе flatten . Проблема в том, что take требует список a , а flatten возвращает список Any . Есть ли способ конвертировать между ними? Или какой-то другой подход, который я должен использовать? Я не смог найти...
143 просмотров

Построить структуру с применением в типизированной ракетке
Я пытаюсь создать списки структур с применением в Typed Racket, но не могу понять, как заставить его работать. Я предполагаю, что это связано с проблемой полиморфных функций, но я не могу найти обходной путь. Это работает: (struct tt ([a :...
166 просмотров
schedule 05.12.2023

Понимание поведения средства проверки типов вокруг `case-›`
В REPL это то, что я получаю, когда проверяю тип car > car - : (All (a b) (case-> (-> (Pairof a b) a) (-> (Listof a) a))) Он возвращает элемент первого типа в паре при передаче пары, где второе значение может не существовать....
26 просмотров
schedule 15.07.2023

Проблема несоответствия типов sub1
Я не могу понять, почему функция sub1 в pick1 имеет проблему с несоответствием типов, а pick0 — нет. (define-predicate one? One) (: pick1 (-> Positive-Integer (Listof Any) Any)) (define pick1 (λ(n lat) (cond [(one? n) (car lat)]...
101 просмотров
schedule 13.06.2023