Описание тега partialfunction

Questions about the Scala's PartialFunction type. For questions about the broader concept of partial functions (i.e. functions not defined for all of their inputs), use [partial-functions]. For questions about partially applied functions, use [partial-application].
2 ответа

Scala PartialFunctions от конкретных

Есть ли быстрый способ использовать в качестве конкретной функции (типа, скажем, (A) => B) как PartialFunction[A, B]? Самый краткий синтаксис, который я знаю: (a: A) => a match { case obj => func(obj) } Есть ли неявное преобразование где-ни…
26 июл '11 в 17:24
1 ответ

Scala: собирать с помощью дженериков

Учитывая следующий сценарий val items = List("a", "b", "c", 1, 2, 3, false, true) def intItems = items.collect {case i : Int => i} def stringItems = items.collect {case s : String => s} Есть ли способ создать универсальную функцию для обработк…
28 июн '17 в 08:31
3 ответа

Как преобразовать X => Option[R] в PartialFunction[X,R]

Пока у нас есть PartialFunction[X,R] очень легко преобразовать его в функцию, возвращающую Option[R]например, def pfToOptf[X, R](f: PartialFunction[X,R])(x: X) = if (f.isDefinedAt(x)) Some(f(x)) else None Однако, что если задача противоположна: пред…
15 дек '09 в 15:41
1 ответ

Есть ли что-то вроде Map.keySet для частичной функции в Scala?

Конкретнее у меня есть: case class Key (key: String) abstract class abstr { type MethodMap = PartialFunction[Key, String => Unit] def myMap: MethodMap // abstract def useIt (key: Key, value: String) = { val meth = myMap(key) meth(value) } def rep…
05 дек '15 в 10:11
2 ответа

Расширение частично реализованной частичной функции в Scala

Я использую библиотеку актеров Akka здесь. Библиотека акторов определяет частичную функцию "получать", которую должен реализовать актер, расширяющий "актер", чтобы иметь дело с различными сообщениями. Я создаю иерархию признаков для моего приложения…
09 янв '13 в 14:26
1 ответ

Частичное применение функции Scala

Я пытаюсь понять, как функция частичного приложения работает в Scala. Для этого я построил этот простой код: object Test extends App { myCustomConcat("General", "Public", "License") foreach print GeneralPublicLicenceAcronym(myCustomConcat(_)) foreac…
18 июн '15 в 17:46
3 ответа

Понятие Скалы о "частичных функциях" и методе ".orElse" в F#

В Scala есть понятие "частичной функции", которая довольно похожа на то, что F# function Ключевое слово позволяет мне достичь. Однако частичные функции Scala также позволяют составлять через orElse метод, как показано ниже: def intMatcher: PartialFu…
17 дек '18 в 15:17
2 ответа

F# - Как удобно применять элементы в списке к параметрам частичной функции?

Предполагается, что есть список: let lst = [1;2;3] И частичная функция: let addAll a b c = a + b + c Как можно удобно ввести параметры для частичной функции, используя элементы в списке lst? Один из способов сделать это: addAll (lst |> List.item …
01 дек '18 в 22:22
3 ответа

Использование кортежей в map, flatmap,... частичных функциях

Если я сделаю: val l = Seq(("un", ""), ("deux", "hehe"), ("trois", "lol")) l map { t => t._1 + t._2 } Все нормально. Если я сделаю: val l = Seq(("un", ""), ("deux", "hehe"), ("trois", "lol")) l map { case (b, n) => b + n } Это тоже нормально. …
08 апр '14 в 17:44
2 ответа

Определение типа частичной функции Scala

val even: PartialFunction[Int, String] = PartialFunction[Int, String] { case i if i % 2 == 0 => i + " is even" } val isEven: PartialFunction[Int, String] = { case i if i % 2 == 0 => i + " is even" } val odd: PartialFunction[Int, String] = Part…
03 май '18 в 03:13
2 ответа

Как работает метод isDefinedAt при использовании операторов case?

В этом объяснении частичных функций в scala оператор case используется следующим образом: val divide2: PartialFunction[Int, Int] = { case d: Int if d != 0 => 42 / d } Тогда это говорит: Хотя этот код явно не реализует метод isDefinedAt, он работа…
23 сен '15 в 11:13
1 ответ

Применение частичной функции в Scala

Я изучаю функциональное программирование, следуя книге Пола Кьюзано и Рунара Бьярнасона " Функциональное программирование в Scala ". Я специально посвящен главе 3, где я реализую некоторые сопутствующие функции для класса, представляющего односвязны…
3 ответа

Чередование частичных функций с andThen в Scala

Давайте использовать примеры из Daily Scala: type PF = PartialFunction[Int,Int] val pf1 : PF = {case 1 => 2} val pf2 : PF = {case 2 => 3} и давайте добавим: val pf3 : PF = {case 3 => 4} и тогда работает как положено здесь: pf1 andThen pf2 i…
10 янв '14 в 10:18
1 ответ

Scala, применяющая PartialFunction с (), отличается от.apply()

Я пытаюсь реорганизовать свой Scala-код в проекте (Play Framework 2.4), когда я пришел с этой идеей: (Чтобы обеспечить минимальный рабочий пример, я изменил некоторые классы, например, я изменил Result и Future[Result] с Int и Option[Int] соответств…
31 авг '15 в 10:44
4 ответа

Как именно "case" работает в частичных функциях в Scala?

Я только начинаю свою, казалось бы, крутую кривую обучения со Scala и не совсем понимаю, как именно "кейс" работает в частичных функциях. Я посмотрел на определение самой PartialFunction, и там я вижу пример, подобный следующему: val isEven: Partial…
24 ноя '13 в 06:09
1 ответ

Добавление новых аргументов в частичную функцию

Есть ли какой-нибудь простой способ, как добавить новые аргументы в частичную функцию, чтобы результирующая функция была определена в той же области, что и раньше (новые аргументы не влияют на ее пристрастность)? Следующий код работает, но кажется н…
16 фев '15 в 19:34
1 ответ

Scala: параметр типа коллекции выдерживает "сбор", когда параметр типа является типом элемента

Обычно при сборе всех элементов последовательности, которые соответствуют определенному типу, результирующая коллекция имеет как тип исходной коллекции, так и тип, выбранный для: trait Foo trait Bar trait Baz { // Works def def1(foo: Seq[Foo]): Seq[…
2 ответа

В терминах функционального программирования, что вы называете чем-то с помощью orElse или другого резервного метода?

Используя scala для справки, мы видим запасное поведение (orElse) в нескольких местах, таких как PartialFunction, Option и кошек EitherOps, Это похоже на уплощение монады, но не то же самое. Есть ли функциональный термин программирования для вещей, …
1 ответ

Передача неявного параметра в Future.recover

Я хочу передать неявный параметр частичной функции, которую я использую для recover мой Futures. def delete(id: Long) = ... { implicit something => serviceLayer.doSomething(id).recover(errorHandler) } def errorHandler: PartialFunction[Throwable, …
06 май '16 в 02:32
5 ответов

Скала, частичные функции

Есть ли способ создать PartialFunction кроме как через case заявление? Мне любопытно, потому что я хотел бы выразить следующее (scala псевдо вперед!)... val bi = BigInt(_) if (bi.isValidInt) bi.intValue ... как частичная функция, и делать val toInt …