Jump to content

Сравнение языков программирования (функциональное программирование)

На этой странице представлены таблицы сравнения инструкций функционального программирования между языками программирования. Сравнение базовых инструкций императивной парадигмы осуществляется путем сравнения базовых инструкций .

Список операций

[ редактировать ]

Приложения функций и списки

[ редактировать ]

Для краткости эти слова будут иметь указанные значения в следующих таблицах (если не указано, что они являются частью синтаксиса языка):

функция
Функция. Может быть унарным или n-арным (или всегда унарным для языков без n-арных функций).
функция1 , функция2 и т. д.
функции определенной арности. func (без номера) аналогичен func1 , также известный как проекция на многих языках.
до
Унарная функция, возвращающая логическое значение. ( Тип ML : 'a -> bool ) (C-подобный тип: bool pred<T>(T t)).
список
Список, над которым ведется работа.
аргументы
Разделенный запятыми список одного или нескольких имен аргументов в форме аргумент1, аргумент2, ..., аргумент .
шаблон
Шаблон в языках с сопоставлением шаблонов .
вал
Любое соответствующее значение в зависимости от контекста.
идентификатор лямбда лямбда карта применять фильтр складывать сумма
Питон лямбда х : х лямбда -аргументы : выражение карта(функция, список ) nfunc(*аргументы) фильтр(пред, список ) functools.reduce(func2, список ) сумма ( список )
Математика #& (выражение)& (аргументы #1 , №2 и т. д.)

Функция[{ аргументы },выражение]

Карта[функция, список ]

функция /@ список

Применить[nfunc, args ]

nfunc@@args

Выбрать[ список , пред] Свернуть[func2, val, список ] Применить[Плюс, список ]

Плюс @@ список

С# [1] х => х (args) => выражение Enumerable.Select( список , функция) Требует размышления Enumerable.Where( список , пред) Enumerable.Aggregate( список , func2)

Enumerable.Aggregate( список , значение, func2)

Enumerable.Sum( список )

Enumerable.Sum( список , функция)

Визуальный Бейсик .NET [1] Функция( х ) х Функция( аргументы ) выражение
Ф# [2] (также можно использовать Enumerable) идентификатор (встроенный)

весело х -> х

забавный узор -> выражение функций Seq.map Список Seq.filter Предварительный список значений Seq.fold func2 Список последовательных сумм Список

Seq.sumПо списку функций

Числовые операции со списками

[ редактировать ]
комп
двоичная функция, возвращающая значение, указывающее порядок сортировки (целое число в большинстве языков).
сортировать Макс мин
Питон отсортированный ( список ) Макс ( список ) мин( список )
Математика Сортировать[ список ] Макс [ список ] Мин[ список ]
С# [1] Enumerable.OrderBy( список , комп) Enumerable.Max( список , функция) Enumerable.Min( список , функция)
Визуальный Бейсик .NET [1]
Ф# [2] последовательной сортировки Список

комп. Seq.sortBy список

сек.макс.

seq.maxПо списку функций

сек.мин

seq.minПо списку функций

Итерации в списках

[ редактировать ]
группировать по
Питон itertools.groupby( список , функция) [3]
Математика GroupBy[ список , функция] [вольфрам 1]
С# [1] Enumerable.GroupBy( список , функция)
Визуальный Бейсик .NET [1]
Ф# [2] seq.groupПо списку функций

Генерация списков с помощью инструментов комбинаторики

[ редактировать ]
начинать
первое значение диапазона.
шаг
приращение дальности.
считать
количество предметов в диапазоне.
последний
включая последнее значение диапазона.
конец
исключительное последнее значение диапазона.
Генерировать диапазон (лениво) Бесконечный диапазон (лениво)
Питон xrange(начало, конец, шаг) (Python 2) [4]

диапазон (начало, конец, шаг) (Python 3) [5]

itertools.count(начало, шаг)
С# [1] Enumerable.Range(начало, количество) Enumerable.Range(начало, Int32.MaxValue)
Визуальный Бейсик .NET [1]
Ф# [2] последовательность { начало..шаг..последний } Seq.initБесконечная функция
  1. ^ Перейти обратно: а б с д и ж г час «Перечисляемый класс (System.Linq)» . Документы Майкрософт . Майкрософт . Проверено 29 августа 2019 г.
  2. ^ Перейти обратно: а б с д «Модуль Collections.Seq (F#)» . Сеть разработчиков Microsoft . Майкрософт . Проверено 29 августа 2019 г.
  3. ^ «itertools — Функции, создающие итераторы для эффективного цикла» . Документация Python 3.7.4 . Фонд программного обеспечения Python . Проверено 29 августа 2019 г.
  4. ^ «Встроенные функции» . Документация Python 2.7.16 . Фонд программного обеспечения Python . Проверено 29 августа 2019 г.
  5. ^ «Встроенные типы» . Документация Python 3.7.4 . Фонд программного обеспечения Python . Проверено 29 августа 2019 г.
  1. ^ «Группировать по» . Документация по языку Wolfram . Вольфрам . Проверено 29 августа 2019 г.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fe68807092f1a6547f55573b16486a53__1703618040
URL1:https://arc.ask3.ru/arc/aa/fe/53/fe68807092f1a6547f55573b16486a53.html
Заголовок, (Title) документа по адресу, URL1:
Comparison of programming languages (functional programming) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)