프로그래밍 언어 비교(기능 프로그래밍)

Comparison of programming languages (functional programming)

이 페이지는 프로그래밍 언어 간의 기능 프로그래밍 명령 비교 표를 제공합니다.명령 패러다임의 기본 명령의 비교는 기본 명령의 비교에 의해 제공된다.

목록 작업

기능 응용 프로그램 및 목록

간결하게 하기 위해, 이러한 단어는 다음 표에서 지정된 의미를 가집니다(언어 구문의 일부라고 명시되지 않은 경우).

funcN
함수.단항 또는 n항(또는 n항 함수가 없는 언어의 경우 항상 단항)일 수 있습니다.
func1,func2,기타.
특정 특성 기능. func(숫자 없음)은 와 같습니다.func1여러 언어에서 프로젝션이라고도 합니다.
pred
부울 값을 반환하는 단일 함수입니다. (ML 형식:'a -> bool)(C라이크 타입:bool pred<T>(T t)).
list
수술 중인 목록입니다.
args
하나 이상의 인수 이름을 쉼표로 구분한 목록:arg1, arg2, ..., argn.
pattern
패턴이 일치하는 언어로 된 패턴입니다.
val
컨텍스트에 따라 관련된 값.
항등 람다 람다 지도 적용합니다. 필터 접다
파이썬 lambda x: x lambda args: expr map(func, list) nfunc(*arguments) filter(pred, list) functools.reduce(func2, list) sum(list)
매스매티카 #& (expr)&(예:#1,#2등)

Function[{args},expr]

Map[func, list]

func /@ list

Apply[nfunc, args]

nfunc@@args

Select[list, pred] Fold[func2, val, list] Apply[Plus,list]

Plus@@list

C#[1] x => x (args) => expr Enumerable.Select(list, func) 성찰이 필요하다 Enumerable.Where(list, pred) Enumerable.Aggregate(list, func2)

Enumerable.Aggregate(list, val, func2)

Enumerable.Sum(list)

Enumerable.Sum(list, func)

Visual Basic.그물[1] Function(x) x Function(args) expr
F#([2]Enumable도 사용 가능) id(내장)

fun x -> x

fun pattern -> expr Seq.map func list Seq.filter pred list Seq.fold func2 val list Seq.sum list

Seq.sumBy func list

리스트의 수치 연산

comp
정렬 순서를 나타내는 값(대부분의 언어에서는 정수)을 반환하는 바이너리 함수.
종류 맥스.
파이썬 sorted(list) max(list) min(list)
매스매티카 Sort[list] Max[list] Min[list]
C#[1] Enumerable.OrderBy(list, comp) Enumerable.Max(list, func) Enumerable.Min(list, func)
Visual Basic.그물[1]
F#[2] Seq.sort list

Seq.sortBy comp list

seq.max

seq.maxBy func list

seq.min

seq.minBy func list

리스트의 반복

에 따라 분류하다.
파이썬 itertools.groupby(list, func)[3]
매스매티카 GroupBy[list, func][울프램 1]
C#[1] Enumerable.GroupBy(list, func)
Visual Basic.그물[1]
F#[2] seq.groupBy 펑크리스트

조합 도구별 목록 생성

개시하다
범위의 첫 번째 값입니다.
걸음
범위 증가.
세어보세요
범위 내의 항목 수입니다.
지난
범위의 마지막 값을 포함합니다.
끝.
범위의 배타적 마지막 값.
범위 생성(느긋하게) 무한 범위(느긋하게)
파이썬 xrange(start, end, step)(파이선 2)[4]

range(start, end, step)(피톤 [5]3)

itertools.count(start, step)
C#[1] Enumerable.Range(start, count) Enumerable.Range(start, Int32.MaxValue)
Visual Basic.그물[1]
F#[2] seq { start..step..last} Seq.initInfinite func

레퍼런스

  1. ^ a b c d e f g h "Enumerable Class (System.Linq)". Microsoft Docs. Microsoft. Retrieved 2019-08-29.
  2. ^ a b c d "Collections.Seq Module (F#)". Microsoft Developer Network. Microsoft. Retrieved 2019-08-29.
  3. ^ "itertools — Functions creating iterators for efficient looping". Python 3.7.4 documentation. Python Software Foundation. Retrieved 2019-08-29.
  4. ^ "Built-in Functions". Python 2.7.16 documentation. Python Software Foundation. Retrieved 2019-08-29.
  5. ^ "Built-in Types". Python 3.7.4 documentation. Python Software Foundation. Retrieved 2019-08-29.
  1. ^ "GroupBy". Wolfram Language Documentation. Wolfram. Retrieved 2019-08-29.