기능적 프로그래밍 배우기 :이 코딩 스타일은 마음을 날려 버릴 것입니다

폭로: 귀하의 지원은 사이트 운영을 유지하는 데 도움이됩니다! 이 페이지에서 권장하는 일부 서비스에 대한 추천 수수료가 발생합니다.


대부분의 프로그래밍 언어는 입력, 출력 및 함수 내부에서 설정하거나 사용할 수있는 외부 변수로 구성되지만 기능 프로그래밍은이를 피합니다..

함수형 프로그래밍의 기본 개념은 함수가 동일한 매개 변수로 호출 될 때마다 동일한 값을 반환해야한다는 것입니다.

기능 프로그래밍을 “기능”으로 만드는 것?

현재 온도를 반환하는 함수를 고려하십시오. 온도를 섭씨 또는 화씨로 반환해야하는지 여부를 나타내는 하나의 변수 만 전달됩니다..

그런 다음이 기능은 내부 로직을 사용하여 온도 센서를 읽음으로써 현재 온도를 반환합니다. 함수가 사용될 때마다 함수 입력이 동일하더라도 다른 값을 리턴 할 가능성이 있으므로 함수형 프로그래밍으로 간주되지 않습니다..

기능 매개 변수

기능적 프로그래밍 언어에는 일류 기능이 있습니다. 이는 함수가 반환하는 값인 것처럼 사용할 수 있음을 의미합니다..

예를 들어, 입력 매개 변수 값의 두 배를 리턴하는 double (x) 함수를 고려하십시오. 따라서 double (2)는 4를 반환합니다. 첫 번째 클래스 함수 인 코드 double (double (2))은 코드 double (4)와 같습니다..

예를 들어, 이것은 하나의 함수를 다른 함수의 매개 변수로 중첩시킬 수 있습니다..

함수형 프로그래밍 언어는 함수가 함수를 전달 된 변수로 사용할 수도 있습니다. 이것은 함수의 결과가 아니라 함수 자체가 전달되는 것과 관련이 있습니다..

일반적인 용도

함수형 프로그래밍은 복잡한 수학적 모델링을 구현하는 데 탁월합니다. 이런 이유로, 기능 언어의 주요 용도 중 하나는 전통적으로 학문적이었습니다..

병렬 처리를 구현할 때 많은 기능적 언어가 뛰어납니다. 이는 실행 순서에 관계없이 항상 동일한 값을 반환하는 순수 함수를 활용할 수 있기 때문입니다..

다른 언어는 경쟁 조건에 대해 걱정해야합니다. 사용하는 변수가 예상 값으로 설정되기 전에 하나의 함수가 실행되는 경우.

기능적 방법론

기능적이지 않은 많은 프로그래밍 언어를 기능적 프로그래밍 방법론과 함께 사용할 수 있습니다.

이 개발 방식은 명령형 프로그래밍 및 기능적 프로그래밍의 이점을 대부분 제공 할 수 있습니다. 잃어버린 경향 중 일부는 개발자가 그 책임을 떠날 수 있도록 순도를 유지하는 데 도움이되는 내장 기능입니다.

일부 언어는 실제로 이러한 단점 중 일부 또는 전부를 제거하는 기능적 프로그래밍과 함께 혼합 된 방법론으로 설계되었습니다..

역사

람다 미적분학은 아마도 최초의 컴퓨터 언어이며 기능적인 언어입니다. 그것은 Alonzo Church에 의해 처음 개발되었습니다..

흥미롭게도이 언어는 프로그래밍 가능한 컴퓨터가 존재하기 훨씬 전에 1930 년대에 처음 만들어졌습니다. 1958 년 매사추세츠 공과 대학 (MIT)의 교수 인 존 맥카시 (John McCarthy)는 람다 미적분학을 모델로 한 가장 중요한 기능 언어 중 하나 인 LISP를 만들었습니다..

오늘날에도 여전히 많은 버전의 LISP가 사용되고 있으며 일부는 다른 버전보다 더 기능적입니다..

기능적 프로그래밍을 지원하는 언어

  • D는 C ++ 이후에 C와 호환되는 것으로 인식되는 약점을 제거하면서 모든 이점을 얻도록 설계되었습니다..

  • 엘릭서 (Elixir)는 에를 랑에서 파생되었으며

    어이
    언어를보다 쉽게 ​​작성하고 유지 관리하는 동시에 동시 응용 프로그램.

  • Erlang은 확장 성과 동시성이 뛰어나 예측할 수없는 순서로 대량의 데이터를 수신하는 통신 및 기타 애플리케이션에 이상적입니다..

  • F #은 오픈 소스 다중 패러다임 언어로

    .그물
    뼈대. 분석 소프트웨어의 신속한 개발에 일반적으로 사용됩니다..

  • Haskell은 Lambda Calculus를 사용하는 순수한 기능 언어입니다.

  • ML은 수학, 과학, 재무, 분석 및 기타 유형의 응용 프로그램에 사용됩니다. 장점 중 하나는 다른 프로그램을 조작하기위한 소프트웨어를 만드는 것입니다.

  • OCaml 또는 Objective Caml은 Caml을 기반으로하는 무료 오픈 소스 언어입니다. 다른 언어로 작성된 것보다 더 빠르게로드하고 실행할 수 있도록 매우 가벼운 프로그램을 작성하는 경향이 있습니다..

  • Scala는 Java 및 기타 객체 지향 언어에 쉽게 통합되도록 설계되었습니다. 스칼라는 기능 프로그래밍을 활용하여 분산 및 동시 응용 프로그램에서 사용할 수 있습니다..

  • 체계는 LISP의 구문과 ALGOL의 구조를 기반으로합니다. 단순성으로 인해 Scheme은 많은 컴퓨터 과학 과정에서 프로그램 설계에 대한 소개로 사용되어 일부 컴퓨터 프로그래밍 기본 사항을 보여줍니다..

  • 스위프트는 내결함성, 신속한 개발 및 표현을 목표로 설계되었습니다..

자원

함수형 프로그래밍 리소스는 일반적으로 스칼라와 같은 특정 언어에 중점을 둡니다. 그러나 그들이있는 경우에도 귀중한 정보를 제공합니다. 기사 나 책에서 사용하지 않는 언어를 사용한다고해서 부끄러워하지 마십시오.

튜토리얼

  • 함수형 프로그래밍에 대한 실용적 소개 : Mary Rose Cook의 명령형 언어와 함께 함수형 프로그래밍 기술 사용에 대한 토론.

  • 함수형 프로그래밍 기본 사항 : 함수형 프로그래밍에 대한 이론적 설명.

  • 함수형 프로그래밍을 두려워하지 마십시오 : 함수형 프로그래밍은 “필수 프로그래밍 패러다임의 힙 스터”입니까? 여기서 알아보십시오.

  • Swift의 함수형 프로그래밍 소개 : Swift를 사용한 함수형 프로그래밍에 대한 자세한 소개.

  • 모든 기능 프로그래밍 자습서가 왜 그렇게 수학적인가? — 읽을 가치가있는 Stack Exchange에 대한 토론.

서적

  • Greg Michaelson의 Lambda Calculus (2011)를 통한 함수형 프로그래밍 소개 : 처음부터 시작되는 소개.

  • 기능적 사고 : Neal Ford의 패러다임 오버 구문 (2014) : 기능적 프로그래밍 기본 사항에 대한 고급 책.

  • Kanand Kumar의 기능 프로그래밍의 마법 세계 : Part I : Thinking Functional (2014) : 기능 프로그래밍의 기본에 대한 짧은 전자 책.

  • Joshua Backfield의 Becoming Functional (2014) : 명령형 및 객체 지향 프로그래밍에 익숙한 사람들을위한 기능 프로그래밍 소개.

요약

함수형 프로그래밍은 일부 응용 프로그램에 매우 유용하지만 많은 프로그래머는 명령형 언어의 용이성을 발견하고 머리를 감싸는 것이 훨씬 쉽습니다..

그러나 수학적이고 공식적인 코딩의 경우 기능적 프로그래밍이 적합합니다. 그리고 함수형 프로그래밍의 원리를 이해하는 것은 모든 프로그래머에게 큰 도움이 될 수 있습니다.

추가 자료 및 자료

코딩 및 개발과 관련된 더 많은 가이드, 자습서 및 인포 그래픽이 있습니다.

  • F # 프로그래밍 : .NET 프레임 워크에서 함수형 프로그래밍에 대해 알아보십시오..

  • Erlang Programming Introduction and Resources : 병렬 코드 생성에 사용되는 초기 기능 언어.

  • Swift 소개 및 자료 :이 언어는 최신 C 유사 언어 중 하나입니다. 프로그래밍의 미래? 여기서 알아보십시오!

어떤 코드를 배워야합니까?

코딩해야 할 프로그래밍 언어에 대해 혼란 스러우십니까? 인포 그래픽, 어떤 코드를 배워야하는지 확인하십시오?

언어의 다양한 측면에 대해서만 논의 할뿐만 아니라 “생활을 위해 Java를 얼마나 많은 돈을 벌 수 있을까요?”

어떤 코드를 배워야합니까?
어떤 코드를 배워야합니까?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map