Вопросы по теме 'lifting'

Scala странная неявная ошибка преобразования бокса
Может кто-нибудь сказать мне, почему следующее не работает? object TestObject { def map(f: (Double, Double) => Double, x2: Array[Double]) = { val y = x2.zip( x2 ) val z = y.map(f) z } } Выдает эту ошибку:...
1239 просмотров
schedule 23.07.2023

Снятая «если» -функция ведет себя неожиданно
в своей программе я использую функцию if' , определенную в одном из модулей, вместо встроенной конструкции if-then-else . Он определяется тривиально и отлично работает. Однако есть одно место в коде, где мне нужно применить его к значениям монад...
48 просмотров
schedule 29.07.2023

Как я могу передавать функции приподнятому R.divide?
Учитывая следующее: var average = R.lift(R.divide)(R.sum, R.length) Почему это работает как бесточечная реализация average ? Я не понимаю, почему я могу передать R.sum и R.length , когда они являются функциями, и поэтому я не могу...
244 просмотров

Следует ли лифтинг в функциональном программировании строгим правилам?
Я изучил «подъемные» вопросы и ответы, примеры, которые мне показались, функция подъема такая же, как и любая функция преобразования, которая меняет форму (например, преобразование монады). Я пропустил какую-либо точку или функция подъема...
321 просмотров

Поднятие значения в монаде State в Haskell
Я пишу генератор/решатель судоку на Haskell в качестве учебного упражнения. Моя функция solve принимает UArray , но возвращает State Int (UArray ...) , так что она также может вернуть максимальный уровень сложности, найденный при решении....
490 просмотров
schedule 25.09.2022

Сопоставление шаблонов на поднятом типе (Slick Lifted Embedding)
Если бы я хотел сопоставить шаблон с базовым типом опции в Scala, я бы запустил что-то вроде val opt = Option(5) val lessThanTen = opt match { case Some(e) => if (e < 10) true else false case None => None } Но предположим,...
174 просмотров
schedule 15.05.2022