(Перенаправлено из Сравнение языков программирования (функциональные инструкции) )
Перейти к навигации Перейти к поискуЭта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Сравнение языков программирования |
---|
|
|
|
Сравнение отдельных языков
|
На этой странице представлены сравнительные таблицы инструкций функционального программирования между языками программирования. Сравнение базовых инструкций императивной парадигмы обеспечивается путем сравнения базовых инструкций .
Список операций [ править ]
Приложения-функции и списки [ править ]
Для краткости эти слова будут иметь указанные значения в следующих таблицах (если не указано, что они являются частью синтаксиса языка):
funcN
- Функция. Может быть унарным или n-арным (или всегда унарным для языков без n-арных функций).
func1
,func2
и т. д.- функции специфической арности.
func
(без номера) то же, что иfunc1
, также известный как проекция на многих языках.
pred
- Унарная функция, возвращающая логическое значение. ( Тип ML:) ( Тип
'a -> bool
C-подобный:)bool pred<T>(T t)
. list
- Список оперируемых.
args
- Разделенный запятыми список одного или нескольких имен аргументов в форме
arg1, arg2, ..., argn
. pattern
- Шаблон на языках с сопоставлением с образцом .
val
- Любое релевантное значение в зависимости от контекста.
идентификационная лямбда | лямбда | карта | подать заявление | фильтр | складывать | сумма | |
---|---|---|---|---|---|---|---|
Python | lambda x: x | lambda args: expr | map(func, list) | nfunc(*arguments) | filter(pred, list) | functools.reduce(func2, list) | sum(list) |
Mathematica | #& | (expr)& (аргументы #1 , #2 и т.д.)
| Map[func, list]
| Apply[nfunc, args]
| Select[list, pred] | Fold[func2, val, list] | Apply[Plus,list]
|
C # [1] | {{{1}}} | {{{1}}} | Enumerable.Select(list, func) | Требуется отражение | Enumerable.Where(list, pred) | Enumerable.Aggregate(list, func2)
| Enumerable.Sum(list)
|
Visual Basic .NET [1] | Function(x) x | Function(args) expr | |||||
F # [2] (также можно использовать Enumerable) | id (встроенный)
| fun pattern -> expr | Seq.map func list | Seq.filter pred list | Seq.fold func2 val list | Seq.sum list
|
Числовые операции над списками [ править ]
comp
- двоичная функция, которая возвращает значение, указывающее порядок сортировки (целое число в большинстве языков).
Сортировать | Максимум | мин | |
---|---|---|---|
Python | sorted(list) | max(list) | min(list) |
Mathematica | Sort[list] | Max[list] | Min[list] |
C # [1] | Enumerable.OrderBy(list, comp) | Enumerable.Max(list, func) | Enumerable.Min(list, func) |
Visual Basic .NET [1] | |||
F # [2] | Seq.sort list
| seq.max
| seq.min
|
Итерации в списках [ править ]
группа по | |
---|---|
Python | itertools.groupby(list, func) [3] |
Mathematica | GroupBy[list, func] [вольфрам 1] |
C # [1] | Enumerable.GroupBy(list, func) |
Visual Basic .NET [1] | |
F # [2] | seq.groupBy список функций |
Создание списков средствами комбинаторики [ править ]
- Начните
- первое значение диапазона.
- шаг
- приращение диапазона.
- считать
- количество элементов в диапазоне.
- последний
- включительно последнее значение диапазона.
- конец
- исключительное последнее значение диапазона.
Создать диапазон (лениво) | Бесконечный диапазон (лениво) | |
---|---|---|
Python | xrange(start, end, step) (Python 2) [4]
| itertools.count(start, step) |
C # [1] | Enumerable.Range(start, count) | Enumerable.Range(start, Int32.MaxValue) |
Visual Basic .NET [1] | ||
F # [2] | seq { start..step..last } | Seq.initInfinite func |
Ссылки [ править ]
- ^ a b c d e f g h "Перечислимый класс (System.Linq)" . Документы Microsoft . Microsoft . Проверено 29 августа 2019 .
- ^ a b c d "Модуль Collections.Seq (F #)" . Сеть разработчиков Microsoft . Microsoft . Проверено 29 августа 2019 .
- ^ "itertools - Функции, создающие итераторы для эффективного цикла" . Документация Python 3.7.4 . Фонд программного обеспечения Python . Проверено 29 августа 2019 .
- ^ «Встроенные функции» . Документация Python 2.7.16 . Фонд программного обеспечения Python . Проверено 29 августа 2019 .
- ^ «Встроенные типы» . Документация Python 3.7.4 . Фонд программного обеспечения Python . Проверено 29 августа 2019 .
- ^ "GroupBy" . Документация по языку Wolfram Language . Вольфрам . Проверено 29 августа 2019 .
Эта статья о программном обеспечении - незавершенная . Вы можете помочь Википедии, расширив ее . |