짧은 답변:
사람들이 기능적 프로그래밍 코드를 읽기 어렵다고 말하는 요소 중 하나는 더 간단한 구문을 선호한다는 것입니다.
긴 대답 :
함수형 프로그래밍 자체는 코드 작성 스타일이 아니라 패러다임이므로 읽을 수 없거나 읽을 수 없습니다. 예를 들어 C #에서 함수형 프로그래밍은 다음과 같습니다.
return this.Data.Products
.Where(c => c.IsEnabled)
.GroupBy(c => c.Category)
.Select(c => new PricesPerCategory(category: c.Key, minimum: c.Min(d => d.Price), maximum: c.Max(d => d.Price)));
Java, C # 또는 유사한 언어에 대한 충분한 경험이있는 사람이라면 누구나 읽을 수있는 것으로 간주됩니다.
반면에 언어 구문은 널리 사용되는 OOP 언어에 비해 많은 기능적 언어 (하스켈 및 F # 포함)에 비해 더 간결하여 일반 영어 단어보다는 기호를 우선적으로 사용합니다.
이것은 FP 이외의 언어에도 적용됩니다. 인기있는 OOP 언어를 영어 단어를 더 많이 사용하는 덜 인기있는 언어와 비교하면 프로그래밍 경험이없는 사람들이 마지막 언어를 이해하기가 더 쉬울 것입니다.
비교:
public void IsWithinRanges<T>(T number, param Range<T>[] ranges) where T : INumeric
{
foreach (var range in ranges)
{
if (number >= range.Left && number <= range.Right)
{
return true;
}
}
return false;
}
에:
public function void IsWithinRanges
with parameters T number, param array of (Range of T) ranges
using generic type T
given that T implements INumeric
{
for each (var range in ranges)
{
if (number is from range.Left to range.Right)
{
return true;
}
}
return false;
}
같은 방법으로:
var a = ((b - c) in 1..n) ? d : 0;
다음과 같이 가상의 언어로 표현 될 수 있습니다.
define variable a being equal to d if (b minus c) is between 1 and n or 0 otherwise;
짧은 구문이 더 좋을 때?
초보자에게는 더 자세한 구문을 이해하기 쉽지만 숙련 된 개발자에게는 더 간단한 구문이 더 쉽습니다. 코드가 짧을수록 입력 할 문자 수가 적어 생산성이 향상됩니다.
특히 구문에서 추론 할 수있는 것을 나타 내기 위해 키워드를 입력하도록 강요하는 것은 실제로 의미가 없습니다.
예 :
PHP에서는 function
특별한 이유없이 모든 함수 나 메소드 앞에 입력 해야합니다.
Ada는 항상 자동 완성 기능이있는 올바른 IDE가 없기 때문에 개발자가 많은 영어 단어를 입력하도록 강요했기 때문에 항상 나를 놀라게했습니다. 나는 최근에 Ada를 사용하지 않았고 공식 튜토리얼이 다운되어 예제를 제공 할 수 없습니다. 누구든지 모범이 있다면 내 대답을 자유롭게 수정하십시오.
구문 1..n
많은 FP (Matlab과)에 사용은,에 의해 대체 될 수있다 between 1, n
거나 between 1 and n
또는 between (1, n)
. 이 between
키워드를 사용하면 언어 구문에 익숙하지 않은 사람들이 이해하기가 훨씬 쉬워 지지만 두 개의 점은 입력하기가 훨씬 빠릅니다.