Описание тега polymorphic-functions
3
ответа
Являются ли полиморфные функции "ограничительными" в Scala?
В книге "Функциональное программирование в Scala MEAP v10" автор упоминает Полиморфные функции часто настолько ограничены своим типом, что имеют только одну реализацию! и приводит пример def partial1[A,B,C](a: A, f: (A,B) => C): B => C = (b: B…
25 сен '14 в 07:13
2
ответа
Как полиморфные встроенные кэши работают с изменяемыми типами?
Полиморфный встроенный кэш (PIC) работает путем кэширования фактического метода по типу объекта, чтобы избежать дорогостоящих процедур поиска (обычно это поиск в хеш-таблице). Как справиться со сравнением типов, если объекты типов являются изменяемы…
27 июн '09 в 15:57
1
ответ
Динамически параметризовать функцию Poly1 в бесформенном
У меня такая ситуация (урезанная до основных частей) class Foo[L <: HList](columns: L) { class toRecord(row: Row) extends Poly1 { implicit def caseColumn[T] = at[Column[T]] { /* map to a record field */ } } def asRecord = { val resultSet: Stream[…
13 авг '14 в 14:26
1
ответ
Порт Oracle decode() с использованием variadic, anyarray и anyelement
Мне нужно перенести из Oracle хранимую процедуру, которая использует decode() широко. То есть я не могу использовать серию CASE WHEN expr THEN expr [...] ELSE как подсказывает гид. Я хотел создать переменную функцию, но вот проблема: в Oracle функци…
11 дек '18 в 08:26
2
ответа
Проверьте, не является ли элемент ISNULL [ Postgresql ]
Я пытаюсь реализовать функцию доступа 'isnull' в postgresql, эта функция принимает в качестве параметра выражение, и функция возвращает истину, если было принято значение null, или ложь, если она не равна нулю. Я знаю, что postgres имеет ключевые сл…
06 окт '16 в 15:46
1
ответ
Полиморфная функция Haskell, использующая либо лево-право
Я новичок в Хаскеле. У меня есть типы: type Variable = String type Value = Float type EvalError = [Variable] type EvalResult = Either EvalError Value И я хочу создать функцию, которую я буду использовать функцию, чтобы использовать его на 2 EvalResu…
28 апр '18 в 09:28
3
ответа
OCaml Явные аннотации полиморфного типа
Я хотел бы получить некоторые полезные комментарии, касающиеся примера, приведенного на: http://caml.inria.fr/pub/docs/manual-ocaml-400/manual021.html 7.12 Явные аннотации полиморфного типа type 'a t = Leaf of 'a | Node of ('a * 'a) t let rec depth …
17 фев '15 в 22:45
2
ответа
Полиморфные типы в Хаскеле
Я наткнулся на эту функцию iter p f x = if (p x) then x else (iter p f (f x)) и я решил попробовать определить полиморфные типы самостоятельно, чтобы понять концепцию. Моя мысль была следующей: Функция принимает 3 параметра, поэтому мы имеем t1 ->…
03 авг '17 в 13:50
1
ответ
Как мне написать функции высшего порядка, которые принимают полиморфные функции в качестве аргументов в Typed Racket?
Например, как я могу написать версию map что будет работать с полиморфными функциями в Typed Racket? Я использую простую id функция определяется как: (: id : (All (A) A -> A)) (define (id x) x) Когда я пытаюсь отобразить его в списке, я получаю с…
06 окт '14 в 08:14
0
ответов
Расхождение в неявном расширении для бесформенного LeftFolder
Я пытаюсь решить эту проблему и хочу сложить HList используя Poly2 функция. Вот автономный MWE (вы можете скопировать и вставить его в REPL с бесформенным 2.0, чтобы воспроизвести проблему) import shapeless._; import shapeless.record._ case class Ro…
13 авг '14 в 19:09
2
ответа
Параметр функции anyelement, ошибка PostgreSQL?
Я не вижу ошибки в этой реализации: CREATE FUNCTION foo(anyelement) RETURNS SETOF int AS $f$ SELECT id FROM unnest(array[1,2,3]) t(id) WHERE CASE WHEN (pg_typeof($1)::text)='integer' THEN $1::int>2 ELSE true END $f$ LANGUAGE SQL IMMUTABLE; SELECT…
16 мар '16 в 02:40
2
ответа
Передайте термин поиска и оператор в Scala Polymorphic Function
У меня есть эта полиморфная функция: def findFirst[A](as: Array[A], p: A => Boolean): Int = { @annotation.tailrec def loop(n: Int): Int = { if(n >= as.length) -1 else if(p(as(n))) n else loop(n + 1) } loop(0) } Из функционального программирова…
21 сен '17 в 20:49
2
ответа
Сопоставление с образцом по типу полиморфного параметра - альтернативы
Допустим, мне нужны разные выходные данные в зависимости от типа полиморфного параметра функции. Моя первоначальная попытка не удалась с каким-то загадочным сообщением об ошибке: choice :: a -> Int choice (_ :: Int) = 0 choice (_ :: String) = 1 c…
19 май '15 в 17:50
1
ответ
Использование Shapeless Poly в другом методе
Я пытаюсь использовать Shapeless Poly в другом методе, как это: object poly extends Poly1 { implicit val caseInt = at[Int](_.toString) implicit val caseString = at[String](_.toString) } def f[A, P <: Poly](a: A, p: P) = println(p(a)) это дает cou…
10 июл '18 в 02:51
1
ответ
std::result_of на полиморфных функторах
Я пытаюсь использовать std::result_of на функторах. Почему я получаю эти результаты? #include <typeinfo> struct my_logical_not { template<typename A> bool operator()(const A &value) const { return !value; } }; struct my_passthrough {…
11 янв '16 в 17:42
2
ответа
Полиморфный тип функций как параметр в haskell?
Я пытаюсь определить полиморфный тип следующей функции: flip f x y = f y x Моя мысль была следующей: 1-й параметр flip, f принимает два аргумента так (t1 -> t2 -> t3) 2-й параметр flip, x имеет тип t1 из-за параметра t1 внутри f функция. 3-й п…
06 авг '17 в 19:25
2
ответа
Как преобразовать универсальный метод в универсальную функцию
Вопрос Как преобразовать метод, рассчитанный по времени, в функцию? val timing = new StringBuffer def timed[T](label: String, code: => T): T = { val start = System.currentTimeMillis() val result = code val stop = System.currentTimeMillis() timing…
19 ноя '19 в 01:36
1
ответ
Определение конструктора для класса типов, который принимает метод с параметром типа?
У меня есть ситуация, когда ни одно из известных мне решений не кажется хорошим. Я пытаюсь определить класс типов, как в приведенном ниже примере, где он имеет абстрактный тип S который должен реализовывать другой класс типов (не показан) Valid[A]. …
02 ноя '20 в 04:51
1
ответ
Введите лямбда с более высоким видом
В Дотти дано следующее: object Domain { final case class Create(name: String) extends BaseCreate[Create] { override type Model = Domain override def service[F[_]](client: KeystoneClient[F]): CrudService[F, Domain, Create] = client.domains } } case c…
21 сен '20 в 17:37
2
ответа
Как в Scala вызвать полиморфную функцию, применимую к типу ввода, не зная тип вывода или аргументы полного типа?
Начиная с Scala 2.12 (или 2.13, можно быть уверенным), компилятор может выводить аргументы скрытого типа по нескольким методам: def commutative[ A, B ]: ((A, B) => (B, A)) = {???} // implementing omitted val a = (1 -> "a") val b = commutative.…
07 сен '21 в 20:26