Pull to refresh

Comments 16

UFO just landed and posted this here
А зачем вводить термин «рекурсия»? Просто функция вызывает функцию. Иногда другую, а в этот раз саму себя, ну и что теперь, отдельное название для этого придумывать? =)
Функции высшего порядка имеют свою специфику, как с точки зрения программиста, так и с точки зрения реализации языка. Не во всех языках они вообще возможны, начнём с этого.
UFO just landed and posted this here
UFO just landed and posted this here
Потому что есть разделение на «данные» и «действие (алгоритм)». Ведь функция — это некое действие, производимое над данными. И не важно что это — строки, числа или файловые дескрипторы. А вот воспринимать функции как данные (а это и есть основа функционального программирования — отсутсвие такого чёткого разделения) — это уже совсем новое мышление. И тут гораздо больше специфики, чем в различии между строками и числами.
Одной из особенностей, отличающих JS от многих других языков программирования, является то, что в этом языке функция — «объект первого класса».


Ну, строго говоря, не таких уж и многих — ФП-парадигма сейчас очень много в какие языки проросла. Разумеется, я говорю о мейнстримных языках, а не о Brainfuck.

Или, говоря по-русски, функция — это значение.


Я склонен не согласиться с этим утверждением.
Аргументируйте свою склонность, не стоит себя сдерживать.
UFO just landed and posted this here
Действительно. Благодарю, поправил.
function pipe(v, f, ...fns){
  return f ? pipe(f(v), ...fns) : v;
}
С rest-параметром-то конечно)
Ну, это чисто чтобы не пугать людей [].slice.call
const pipe = (input, ...functions) => (
  functions.reduce( (value, func) => func(value), input )
);
Могу и ошибиться, но наконец-то я кажется понял как работают нативные генераторы в es6 с next().
А как они работают?)
Sign up to leave a comment.

Articles

Change theme settings