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

None Спецификация алгебраических структур данных в JavaScript.
2 ответа

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

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

Используя функциональное программирование javascript с folktale2, как изящно получить доступ к результатам предыдущих задач?

Задача имеет несколько шагов, если ввод каждого шага производится только с последнего последнего шага, это легко. Однако, чаще всего, некоторые шаги зависят не только от прямого последнего шага. Я могу работать несколькими способами, но все они зака…
3 ответа

Отображение на массив задач в Javascript

Итак, я начал смотреть на Ramda / Folktale. У меня возникла проблема при попытке сопоставить массив задач, поступающих из каталога. Я пытаюсь разобрать содержимое файла. var fs = require('fs'); var util = require('util'); var R = require('ramda'); v…
1 ответ

Является ли использование последовательности правильным подходом для предоставления монадических аргументов функции арности больше 1?

Смотрите следующий фрагмент кода: const fun1 = () => Either.of(1), fun2 = () => Either.of(2), fun3 = () => Either.of(3), fun4 = curry((x, y, z) => Either.of(x + y + z)), fun5 = x => Either.of(x + 1), fun6 = () => pipeK( () => se…
1 ответ

Что значит для значения "иметь функтор"?

Я новичок в этом, и я могу упустить что-то важное. Я прочитал первую часть " Теории категорий для программистов", но самой абстрактной математикой, которую я сделал в университете, была "Теория групп", поэтому мне приходится читать очень медленно. В…
24 ноя '17 в 01:04
0 ответов

Проблема реализации функтора в машинописи

Я читал серию блогов Тома Хардинга по спецификации фэнтези-лэнд, и сегодня днем ​​я играл с реализацией функтора в машинописи. class Just<T> { private x: T constructor (x: T) { this.x = x } map <R>(f: (a: T) => R): Just<R> { ret…
1 ответ

Почему спецификация фантазийной земли требует, чтобы цепочка возвращала значение той же цепочки?

chain метод Значение, имеющее Цепочку, должно обеспечивать chain метод. Метод цепочки принимает один аргумент: m.chain(f) f должна быть функция, которая возвращает значение Если f это не функция, поведение chain не указано f должен вернуть значение …
0 ответов

Folktale / fantasyland Возможно не работает, как ожидалось

Чтение руководства Frisbys по функциональному программированию, в настоящее время в главе о Maybe, В приложении книга предлагает использовать либо народную сказку, либо сказочную страну. Однако в обеих библиотеках Maybe не похоже на работу, как опис…
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 ответ

Понимание Fantasyland `ap`

Я пытаюсь понять ap, но возникли проблемы. Джеймс Форбс в сказочной стране говорит: Сначала мы учим функцию, как взаимодействовать с нашим типом, сохраняя эту функцию в контейнере, как любое другое значение. (Функции тоже значения, которые вы знаете…
2 ответа

Можно ли ограничить универсальные классы для конкретных методов?

Допустим, я создаю контейнер в TypeScript. Это может быть любой контейнер, но я буду использовать следующий простой пример: class Container<T> { val: T; constructor(t: T) { this.val = t; } } Скажем, я хотел бы предложить функцию, чтобы, если у…
22 июл '16 в 12:05
1 ответ

Сообщение об ошибке "Возможно" от Ramda Pass через цепные вызовы

Допустим, у меня есть набор функций, возвращающих значения Just или Nothing, и я хочу связать их вместе следующим образом; var a = M.Just("5").map(function(data){ return 1; }).chain(function(data){ /*Make some operation return Just or Nothing */ con…
2 ответа

Цепочка (или отображение) Задача, содержащая один массив данных в массив Задач

Часть изучения Fanatasy Land/Folk Tale привела меня к созданию некоторого кода. Я по сути сканирую свою сеть (через someLib) и загружаю результаты в хранилище Монго. Сканирование возвращает массив результатов, в то время как переход на монго должен …
2 ответа

Комбинация Maybe и IO монад для чтения / записи DOM

Я пытаюсь подготовить простой пример, используя IO и Возможно монады. Программа читает узел из DOM и записывает некоторые innerHTML к этому. Я одержим комбинацией IO и Maybe, например, IO (Maybe NodeList), Как я закорачиваю или выкидываю ошибку с эт…
0 ответов

Использование монад задач и читателей в JavaScript (DynamoDB и Facebook API)

Здесь мы пытаемся сделать много вызовов функциональным способом с помощью javascript, проблема в том, что в итоге мы получаем Reader.of(Task.of(Reader.of(Task.of)))), поэтому нам нужно отобразить (map(map(map))) значения, которые нам нужны для работ…
1 ответ

Используйте ramda `sequence`, чтобы пройти словарь

Как я могу использовать рамды sequence пройти словарь? Учитывая следующий словарь cars = {color: ['yellow', 'red'], year: [2017], model: ['coup', 'sedan']} Я хотел бы получить пройденный результат all_cars = [ {color: 'yellow', year: 2017, model: 'c…
14 ноя '17 в 18:11
0 ответов

Машинописные подписи и теория категорий

Мне интересно, достаточно ли сейчас TypeScript достаточно выразителен для моделирования некоторых типовых сигнатур теории категорий. Например, у меня может быть тип функтора, определенный как (я использую версию Fantasy Land для сигнатур типа Damas–…
1 ответ

Оперируя двумя вариантами

Предположим, у вас есть следующий код: import R from "ramda"; import S from "sanctuary"; import { Left, Right } from "sanctuary-either"; const add = R.curry((p1, p2) => p1 + p2); const addOne = add(1); const func1 = () => Right(2); const func2…