프로그래밍 언어 비교(기능 프로그래밍)
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등)
| Map[func, list]
| Apply[nfunc, args]
| Select[list, pred] | Fold[func2, val, list] | Apply[Plus,list]
|
| C#[1] | x => x | (args) => expr | Enumerable.Select(list, func) | 성찰이 필요하다 | Enumerable.Where(list, pred) | Enumerable.Aggregate(list, func2)
| Enumerable.Sum(list)
|
| Visual Basic.그물[1] | Function(x) x | Function(args) expr | |||||
| F#([2]Enumable도 사용 가능) | id(내장)
| fun pattern -> expr | Seq.map func list | Seq.filter pred list | Seq.fold func2 val list | Seq.sum 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.max
| seq.min
|
리스트의 반복
| 에 따라 분류하다. | |
|---|---|
| 파이썬 | 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]
| 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 |
레퍼런스
- ^ a b c d e f g h "Enumerable Class (System.Linq)". Microsoft Docs. Microsoft. Retrieved 2019-08-29.
- ^ a b c d "Collections.Seq Module (F#)". Microsoft Developer Network. Microsoft. Retrieved 2019-08-29.
- ^ "itertools — Functions creating iterators for efficient looping". Python 3.7.4 documentation. Python Software Foundation. Retrieved 2019-08-29.
- ^ "Built-in Functions". Python 2.7.16 documentation. Python Software Foundation. Retrieved 2019-08-29.
- ^ "Built-in Types". Python 3.7.4 documentation. Python Software Foundation. Retrieved 2019-08-29.
