Рубрики
Без рубрики

Очень простое введение в функциональное программирование

Краткое введение в функциональное программирование. Tagged с функциональным, JavaScript, Lodash.

Если вы слышали «модные слова» Функциональное программирование (FP), сочинение , точка бесплатно и т. Д., И вы были полностью потеряны … вы не одиноки. Вот проникновенный пик того, что вы можете сделать, если вы сочиняете вещи и следуете функциональному и некачественному стилю программирования.

const _ = require('lodash/fp')

const lines = [
  {
    name: "We're the eggmen",
    order: 2,
  },
  {
    name: "I'm the eggman",
    order: 1
  },
  {
    name: "I'm the walrus",
    order: 3
  }
]

function main(lines) {
  // generateSelectObject :: Object -> Object
  const generateSelectObject = ({ name, order }) => ({
    value: `${name}_${order},
    label: name,
  })

  const sortAndMapLines = _.compose(
    _.map(generateSelectObject),
    _.sortBy(['order'])
  )

  const orderedLines = sortAndMapLines(lines)

  orderedLines.unshift({
    label: 'All lines',
    value: 'All lines'
  })

  return orderedLines
}

const res = main(lines)
console.log(res)

Я утверждаю, что самая интересная часть этого скучного кода – это:

const sortAndMapLines = _.compose(
  _.map(generateSelectObject),
  _.sortBy(['order'])
)

Это то, что Fp Это все о том, вы определяете необходимые шаги для достижения чего -либо, в данном случае отсортированные, а затем отображенные результаты строки Анкет Обратите внимание, что мы составляем там две функции, сортировка и карта от Лодаш И это точка бесплатно Потому что ни одна из функций явно не объявляет, с какими данными они будут работать.

Надеемся, что этот бродяга полезен, и это вызовет ваш аппетит к поиску лучших способов выполнения вашей работы и улучшения общего качества нашего кода. Очень хорошее место для начала – это профессор Фрисби В основном адекватное руководство по функциональному программированию Что я очень рекомендую.

Оригинал: “https://dev.to/sigfriedcub1990/a-very-simple-introduction-to-functional-programming-1fp4”