2012-11-13 9 views
1

가능한 중복 : 내가 대학에있을 때 포인트 프리를 사용하면 어떤 이점이 있습니까?


What are advantages and disadvantages of “point free” style in functional programming?

나는 하스켈을 배워야했다. 내 수업 중 하나에서 포인트없는 기능을 사용하는 방법을 배웠습니다. 학문적 인 관점 이외에 점 자유로운 작풍에있는 프로그램의 어떤 이점 있는가?

효율성 측면에서 어떤 차이가 있습니까? 코드 라인이 많은 응용 프로그램에서 point free를 이해하기가 어렵지 않습니까?

+0

@DonStewart 죄송합니다. 복제본임을 알지 못했습니다. – dreamcrash

+0

@AndrewC 많은 증명을해야 할 당시. 나는 "스타일"이 "마음을 열어"벗어나는 것을 보았다. 그러나 결코 진지하게 생각하지 않는다. 그 스타일은 큰 프로젝트에서 사용하기에 비생산적인 것이기 때문에 항상 – dreamcrash

+1

"코드 라인이 많은 응용 프로그램에서는 point-free 스타일을 이해하기 어렵지 않습니까?"- 전체적으로 맹목적으로 포인트없는 스타일을 적용하지 마십시오. 프로그램이므로 코드 줄 수는 무의미합니다. 요점은 일단 당신이 자유로운 스타일을 사용한다면 * 어떤 것들은 그 스타일에서 훨씬 더 명확해질 수 있다는 것입니다. 그래서 도움이 될 때 사용하고 다른 기술과 마찬가지로 도움이되지 않을 때는 사용하지 마십시오. 상황에 상관없이 항상 ** ** 도움이되는 프로그래밍 기술의 수는 거의 제로입니다. – Ben

답변

12

익숙해지면 지나치게 길게 사용하지 않는 한 더 선명하고 깨끗합니다.

아마도 ((not.).) 당신에게 \f x y = not (f x y)만큼 명확하지 않다, 그러나

munge = this . that . other 

명확보다는

munge x = this (that (other x))) 

귀하의 강사가 아니에요 때문에, 당신에게 더 나은 프로그래머를 만들기 위해 pointfree 가르쳐야한다 코드를 난독 화하는 것이 가장 좋습니다. 도움이 될 때 사용하십시오.

동기는 효율성이 아니며 생각, 목적 및 표현이 명확합니다.

6

읽기가 더 쉽거나 더 어려울 수 있습니다. 따라서 사용 방법에 따라 코드 유지 관리 가능성에 영향을 줄 수 있습니다. 매우 특별한 경우를 제외하고는 성능에 영향을 미치지 않습니다.

이것은 또 다른 숙어입니다.

관련 문제