«functional-programming» 태그된 질문

함수형 프로그래밍은 출력이 프로그램 상태가 아닌 입력에 의해 결정되는 함수의 체인 평가로 계산 문제를 해결하려는 패러다임입니다. 이 스타일의 프로그래밍에서 부작용 및 변경 가능한 데이터는 더 이상 사용되지 않으며 일반적으로 엄격하게 격리됩니다.

18
클라이언트가 객체 지향 프로그래밍을 사용하지 않도록 요구 한 경우 어떻게 하시겠습니까?
그리드에서 개미 의 활동 을 시뮬레이션하는 프로그램을 작성 중입니다 (PDF). 개미는 움직일 수 있고 물건을 집어 들고 물건을 떨어 뜨릴 수 있습니다. 문제는 개미의 행동과 각 개미의 위치를 ​​클래스 속성으로 쉽게 추적 할 수 있고 (그리고 우리는 그러한 개미의 많은 인스턴스를 쉽게 만들 수 있음) 고객은 기능 프로그래밍에 대한 배경 …

5
기능적 언어의 비동기 프로그래밍
저는 주로 C / C ++ 프로그래머입니다. 이는 대부분의 경험이 절차 및 객체 지향 패러다임에 관한 것임을 의미합니다. 그러나 많은 C ++ 프로그래머가 알고 있듯이 C ++은 수년에 걸쳐 기능적 스타일로 강조되어 마침내 C ++ 0x에서 람다와 클로저를 추가하는 중입니다. 그럼에도 불구하고 C ++을 사용하여 기능적 스타일로 코딩하는 데 상당한 …

5
차별적 노동 조합이 기능적 프로그래밍과 관련되는 이유는 무엇입니까?
OO 프로그래밍의 오랜 세월 동안 나는 차별적 노동 조합이 무엇인지 이해했지만, 결코 그들을 그리워하지 않았습니다. 최근에 C #에서 일부 기능 프로그래밍을 수행해 왔으며 이제는 계속 사용하기를 바랍니다. 차별적 노조의 개념이 기능적 / OO 이분법과는 상당히 독립적 인 것처럼 보이기 때문에 이것은 당황 스럽다. 차별화 된 노동 조합이 OO보다 유용하게 사용할 …

4
왜 Scala와 같은 기능적 언어로 된 ORM이 필요하지 않습니까?
Spring + Hibernate 프로젝트에서 Java에서 Scala로 전환하여 패턴 일치, 옵션 및 일반적인 구문과 같은 일부 Scala 기능을 활용할 수 있는지 궁금합니다. 나는 Scala 생태계에서 기본적으로 ORM을 찾고 있었고 Activate와 같은 생각을 발견했습니다 (그러나 대부분 Hibernate를 Scala와 함께 사용할 수 있는지 찾으려고 노력합니다). 이것을 찾고 JPA + Scala에 관한 Play 문서 …

10
말의 무리가 주어지면 모든 유니콘의 평균 뿔 길이를 어떻게 찾을 수 있습니까?
위의 질문은 레거시 코드에서 발생하는 일반적인 문제 또는 더 정확하게는이 문제를 해결하기 위해 이전에 시도한 문제의 추상 예입니다. 방법과 같이이 문제를 해결하기위한 적어도 하나의 .NET 프레임 워크 방법을 생각할 수 있습니다 Enumerable.OfType<T>. 그러나 궁극적으로 런타임에 객체 유형을 조사한다는 사실은 나와 맞지 않습니다. 각 말에게 "유니콘인가요?" 다음과 같은 접근 방식도 떠 …

8
게으른 평가의 개념이 유용한 이유는 무엇입니까?
보인다 게으른 평가 식의 자신의 코드가 실행되는 순서 이상 잃을 제어 프로그래머가 발생할 수 있습니다. 프로그래머가 왜 이것이 수용 가능하거나 원하는지 이해하는 데 어려움이 있습니다. 언제, 어디서 식을 평가할 지 보장 할 수없는 경우,이 패러다임을 사용하여 예상대로 작동하는 예측 가능한 소프트웨어를 구축 할 수 있습니까?

10
함수형 프로그래밍 제안자는 Code Complete에서이 문장에 어떻게 대답합니까?
Steve McConnell은 두 번째 버전의 839 페이지에서 프로그래머가 대규모 프로그램에서 "복잡성을 극복 할 수있는"모든 방법을 논의하고 있습니다. 그의 조언은이 진술로 끝납니다. "객체 지향 프로그래밍은 알고리즘과 데이터에 동시에 적용되는 추상화 수준을 제공합니다. 이는 기능 분해만으로는 제공하지 않는 일종의 추상화입니다." "복잡성을 줄이는 것이 효과적인 프로그래머가되기위한 가장 중요한 열쇠"(동일한 페이지)라는 결론과 함께, 이것은 …

3
웹 서비스를위한 Haskell vs Erlang
나는 기능적 언어를 사용하여 실험 프로젝트를 시작하고 Erlang과 Haskell 사이를 결정하려고 노력하고 있으며, 둘 다 내가 정말 좋아하는 점이 있습니다. 하스켈의 강력한 타입 시스템과 순도를 좋아합니다. 정말 안정적인 코드를 작성하는 것이 더 쉬워 질 것 같습니다. 그리고 Haskell의 힘이 내가하고 싶은 일을 훨씬 쉽게 해줄 것이라고 생각합니다. 마이너스 측면에서 나는 …

5
유닉스 철학에서의 프로그래밍은 기능적 프로그래밍과 동일합니까?
UNIX 프로그래밍 환경 (일반 텍스트)에 따르면 프로그래밍에 대한 UNIX 접근 방식은보다 복잡한 문제를 해결하기 위해 결합 할 수있는 작고 정의 된 도구를 작성하는 것입니다. C와 Bash 셸을 배우면서 이것은 광범위한 프로그래밍 문제를 처리하는 데 사용할 수있는 강력한 개념이라는 것을 알았습니다. Linux 플랫폼을 사용하는 것만으로도 개념이 명확하고 항상 사용됩니다. ls, grep …

3
모나드를 보는 다른 방법
하스켈을 배우는 동안 모나드가 무엇인지, 하스켈에서 모나드가 중요한 이유를 설명하려는 많은 튜토리얼에 직면했습니다. 그들 각각은 비유를 사용했기 때문에 의미를 이해하기가 더 쉬울 것입니다. 하루가 끝나면 모나드가 무엇인지에 대한 3 가지 견해로 끝납니다. 보기 1 : 모나드를 레이블로 때로는 모나드가 특정 유형의 레이블이라고 생각합니다. 예를 들어 다음과 같은 유형의 함수가 있습니다. …

3
F #에 rec 키워드가 필요한 이유는 무엇입니까?
F #에서는 rec키워드 를 사용해야합니다 . Haskell에서는 주어진 함수가 재귀인지 아닌지를 명시 적으로 말할 필요가 없습니다. 함수형 프로그래밍에서 재귀의 역할을 감안할 때 F # 디자인은 다소 이상하게 보입니다. 좋은 언어 디자인 결정입니까, 아니면 역사적 이유로 또는 구현 제한 때문에 존재합니까?

4
Haskell의 리턴 타입-(유일)-다형성이 좋은가요?
Haskell에서 절대로 언급하지 않은 한 가지는 입력 유형으로 반환 유형을 결정할 수없는 다형성 상수 및 함수를 얻는 방법입니다. class Foo a where foo::Int -> a 내가 이것을 좋아하지 않는 이유 중 일부 : 참조 투명성 : "Haskell에서 동일한 입력이 주어지면 함수는 항상 동일한 출력을 반환합니다." 컨텍스트 read "3"에서 사용될 때는 …

6
기능적 언어를 배우면 더 나은 OOP 프로그래머가됩니까? [닫은]
Java / C # / C ++ 프로그래머로서 기능 언어에 대해 많은 이야기를 듣지만 언어를 배울 필요는 없었습니다. 또한 기능적 언어로 도입 된 높은 수준의 사고로 인해보다 나은 OOP / 절차 언어 프로그래머가 될 수 있다고 들었습니다. 누구든지 이것을 확인할 수 있습니까? 프로그래밍 기술을 향상시키는 방법은 무엇입니까? 덜 복잡한 언어의 …

5
예외를 catch / throw하면 순수한 방법이 불완전합니까?
다음 코드 예제는 내 질문에 대한 컨텍스트를 제공합니다. Room 클래스는 대리자로 초기화됩니다. Room 클래스의 첫 번째 구현에서는 예외를 발생시키는 델리게이트에 대한 가드가 없습니다. 이러한 예외는 대리자가 평가되는 North 속성으로 버블 링됩니다 (주 : Main () 메서드는 클라이언트 코드에서 Room 인스턴스가 사용되는 방법을 보여줍니다). public sealed class Room { private readonly …

7
함수형 프로그래밍은 "시스템을 모듈로 분해하는 데 사용되는 기준"(데이터 숨기기)의 이점을 무시합니까?
방금 처음으로 읽은 시스템을 모듈로 분해하는 데 사용되는 기준에 관한 고전 기사가 있습니다 . 그것은 나에게 완벽하게 이해되며 아마도 OOP가 기반으로 한 기사 중 하나 일 것입니다. 결론 : 이러한 예를 통해 플로우 차트를 기반으로 시스템을 모듈로 분해하는 것이 거의 항상 올바르지 않음을 보여 주려고 시도했습니다. ... 그런 다음 각 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.