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

Sanctuary - это библиотека функционального программирования JavaScript, вдохновленная Haskell и PureScript.
2 ответа

Путаница в понимании подстановки / сигнатуры типа `ap` и различных реализаций (функциональное программирование)

Я изучаю функциональное программирование, извините, если мой вопрос звучит странно - я пытаюсь сосредоточиться на заданных типовых сигнатурах функций и способах их реализации. Глядя на подпись ap (Замена) https://gist.github.com/Avaq/1f0636ec5c8d6ae…
1 ответ

Установить свойство, когда значение равно Just

Я хотел бы установить свойство объекта при значении Just, а не устанавливать свойство при значении Nothing. Однако, если значением является Nothing, возвращаемый объект становится Nothing. let person = {name: 'Franz'} const address = getAddress(resp…
05 дек '18 в 07:07
2 ответа

Как я должен нанести на карту Возможно Список?

Я отказался от "Адекватного руководства по функциональному программированию" профессора Фрисби с тем, что кажется неправильным представлением о Возможно. Я верю: map(add1, Just [1, 2, 3]) // => Just [2, 3, 4] Я чувствую отход от вышеупомянутого р…
1 ответ

Чем отличается Карри между Святилищем и Рамдой?

Я застрял с примерами карри в "Профессор Фрисби..." при использовании Sanctuary вместо Ramda. Я получаю сообщение об ошибке: "curry2 ожидал не более трех аргументов, но получил пять аргументов". пока с рамдой работает нормально. Я уверен, что я дела…
07 окт '17 в 01:31
1 ответ

Могу ли я сделать "через" через свойства объекта с Sanctuary

Ramda была моей первой библиотекой функционального программирования, и теперь я сравниваю Sanctuary с Ramda. Может быть, некоторые мои вопросы слишком глупы, но я не нашел лучшего способа узнать Святилище. Мой вопрос следующий: как я могу map массив…
1 ответ

Что это на самом деле означает левый и правый в святилище

> S.reduce(S.flip(S.K),[],S.Left([1,2])) [] > S.reduce(S.flip(S.K),[],S.Right([1,2])) [ 1, 2 ] Я пытался понять святилище, и его работа может кто-нибудь подробно объяснить вышеупомянутые результаты. В моем понимании S.reduce берет функцию отоб…
08 ноя '18 в 19:58
2 ответа

Множественный if рефакторинг

У меня есть эта функция, с двумя ifгде я хочу найти пользователя в зависимости от того, какой буквенно-цифровой код я получаю. Как я могу рефакторинг этого с Sanctuary-JS? //const code = '0011223344'; const code = 'aabbc'; const isNumberCode = code …
1 ответ

Как правильно войти в Sanctuary / Fluture?

Фон У меня есть функция, которая называется logInfoAsync, Давайте рассмотрим, как эта функция отправляет некоторую информацию на сервер журналов по сети. Для целей этого вопроса предположим, что функция реализована следующим образом: const logInfoAs…
2 ответа

Использование конструктора `.of` в Sanctuary Maybe

Я работаю над учебником по функциональному программированию, который показывает следующий пример кода с использованием библиотеки sanctuary.js: var S = require('sanctuary') var Maybe = S.Maybe S.add( Maybe.of(3) ,Maybe.of(5) ) .map(n => n * n) Я …
2 ответа

Святилище Js и определение контравариантного функтора

Я пробую это с нуля, узнавая о Contravariants и более глубокое знание Sanctuary. Код "работает", но опять же у меня нет совершенно правильных типов. Вот контравариант const {contramap: contramapFl, extract } = require('fantasy-land'); const getInsta…
1 ответ

Ошибка типа Sanctuary.Js с функтором Identity

Я играю после уроков теории категорий Бартоша Милевского на YouTube. Он описывает функторы Const и Identity как "базовые" функторы, которые могут быть получены из (вероятно, либерального перефразирования с моей стороны). Моя проблема, реализовав вер…
1 ответ

Ошибка с просто возможно функцией

Фон Я пытаюсь помочь кому-то в Stackru с вопросом о Фьючерсах, Maybes и Eithers. Мой первый подход заключается в том, чтобы иметь простую функцию, которая принимает Maybe и что-то вычисляет. Код Я использую Sanctuary, но это эквивалентно Ramda или л…
1 ответ

Какое значение я должен передать Sanctuary.either()?

Я пытаюсь запустить следующий пример. Он использует sanctuary.js. const {create, env} = require('sanctuary'); const S = create({checkTypes: false, env: env}); const test = require('tape'); class Person { constructor(name){ this.name = S.maybeToEithe…
1 ответ

Введите значения и "Доступный псевдотип" в Sanctuary.js (Fantasy Land)

Я работаю с документацией на Sanctuary.js. Я также работал над изучением языка Haskell и немного боролся с концепциями FP. Я понимаю, что значение типа - это объект, который имеет (а) конструктор (представитель типа), (б) идентификатор типа (имя тип…
1 ответ

Как заглушить Fluture?

Фон Я пытаюсь преобразовать фрагмент кода из старых добрых обещаний во что-то, используя Flutures и Sanctuary: https://codesandbox.io/embed/q3z3p17rpj?codemirror=1 проблема Теперь, обычно, используя Обещания, я могу использовать библиотеку, такую ​…
18 июл '18 в 09:58
1 ответ

Выбор полей из объекта с определенным RecordType с Sanctuary

У меня есть объект с параметрами, который соответствует следующему типу записи: const AwsRegionsEnum = $.EnumType( 'AWS/Regions', 'http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html', [ 'us-east-1', 'us-east-2',…
1 ответ

Пользовательская семантика равенства для структур данных Immutable.js

Я бы хотел, чтобы Sanctuary предоставил Fantasy Land- совместимые типы Map и Set с семантикой равенства на основе значений. В идеале эти значения должны быть неизменными, хотя это не критично, поскольку Sanctuary предоставляет чистые функции для сли…
1 ответ

Картографирование со святилищем над фэнтезийным миром

У меня есть небольшой пример кода, который работает так, как я ожидал при использовании ramda, но моя попытка перенести это в убежище не удалась. const IO = require('fantasy-io'); const S = require('sanctuary'); const R = require('ramda'); const url…
14 авг '18 в 10:21
4 ответа

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

Дан объект, который может быть нулевым и может иметь следующие свойства: { templateId: "template1", templates: { template1: "hello" } } Как бы вы получили шаблон безотказным способом? (templateId может быть не определен, или шаблон, на который он сс…
1 ответ

Как мне развалиться? Может быть, монады в святилище?

Вот простое цепочечное выражение, использующее современный javascript для поиска значения для конкретного ключа, расположенного в строке, содержащей разделенный запятыми список пар ключ-значение, разделенных =, Это падает, если источник нулевой или …
10 авг '18 в 23:43