Skip to Content
C#을 활용한 기능적 프로그래밍
book

C#을 활용한 기능적 프로그래밍

by Simon J. Painter
May 2025
Beginner to intermediate
328 pages
4h 54m
Korean
O'Reilly Media, Inc.
Book available
Content preview from C#을 활용한 기능적 프로그래밍

5장. 상위 주문 기능

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

끝이 없는 쇼에 다시 오신 것을 환영합니다. 이 장에서는 고차 함수의 용도에 대해 살펴보겠습니다. C#에서 고차 함수를 사용하여 수고를 덜고 실패할 가능성이 적은 코드를 만드는 새로운 방법을 보여드리겠습니다.

그렇다면 고차 함수는 무엇일까요? 다소 생소한 이 이름은 매우 간단한 것을 나타냅니다. 사실 LINQ를 사용해 본 적이 있다면 고차 함수를 한 번쯤 사용해 보셨을 것입니다. 고차 함수는 두 가지 종류가 있습니다:

var liberatorCrew = new []
{
    "Roj Blake",
    "Kerr Avon",
    "Vila Restal",
    "Jenna Stannis",
    "Cally",
    "Olag Gan",
    "Zen"
};
var filteredList = liberatorCrew.Where(x => x.First() > 'M');

Where() 함수에 전달된 것은 화살표 표현식으로, 이름 없는 함수를 작성하는 줄임말입니다. 장문 버전은 다음과 같습니다:

function bool IsGreaterThanM(char c)
{
    return c > 'm';
}

따라서 여기서는 함수가 다른 함수에 매개변수로 전달되어 내부의 다른 곳에서 실행되도록 했습니다.

이것은 고차 함수를 사용하는 또 다른 예입니다:

public Func<int, int> MakeAddFunc(int x) => y => x + y;

여기에는 화살표가 하나가 아니라 두 개가 있다는 것을 주목하세요. x 정수를 가져와서 새 함수를 반환합니다. 새 함수에서 x 참조는 원래 MakeAddFunc() 을 호출할 때 제공된 값으로 채워집니다.

예를 들어

var addTenFunction = MakeAddFunc(10);
var answer = addTenFunction(5);
// answer is 15

이 예제에서 10MakeAddFunc() 에 전달하면, 전달한 추가 정수에 10을 더하는 새로운 함수가 만들어집니다.

간단히 말해, 고차 함수는 다음 속성 중 하나 이상을 가지고 있습니다:

  • 함수를 매개변수로 받습니다.

  • 함수를 반환 유형으로 반환합니다.

C#에서는 일반적으로 Func (반환 유형이 있는 함수의 경우) 또는 Action ( void) 델리게이트 유형을 반환하는 함수의 경우)를 사용하여 이 모든 작업을 수행합니다. 고차 함수는 구현하기가 훨씬 더 쉬운 매우 간단한 아이디어이지만 코드베이스에 미칠 수 있는 효과는 놀랍습니다.

이 장에서는 고차 함수를 사용하여 일상적인 코딩을 개선하는 방법을 안내해 드리겠습니다. 또한 결합기라는 고차 함수의 한 차원 높은 사용법을 소개하겠습니다. 결합자를 사용하면 함수를 전달하여 더 복잡하고 유용한 동작을 만들 수 있습니다.

참고

조합기는 조합 논리라는 수학적 기법에서 유래했기 때문에 라고 불립니다. 다시는 이 용어를 듣거나 고급 수학에 대한 언급에 대해 걱정할 필요가 없습니다. ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

What Employees Want Most in Uncertain Times

What Employees Want Most in Uncertain Times

Kristine W. Powers, Jessica B.B. Diaz
What Successful Project Managers Do

What Successful Project Managers Do

W. Scott Cameron, Jeffrey S. Russell, Edward J. Hoffman, Alexander Laufer

Publisher Resources

ISBN: 9798341655683Supplemental Content