2
필자는 명령형 블록 구분 기호와 같이 엘릭서에서 "do/end"표기법을 사용 해왔다. 즉, do
은 {
과 비슷하지만 end
은 }
과 비슷합니다.엘릭서와 하스켈의 "Do"표기법
정확한 내용은 무엇입니까? 아니면 Haskell do
표기법과 같습니까? 이는 명령형 코딩을 허용하는 모나드 용 구문 설탕을 구성하는 것입니까?
필자는 명령형 블록 구분 기호와 같이 엘릭서에서 "do/end"표기법을 사용 해왔다. 즉, do
은 {
과 비슷하지만 end
은 }
과 비슷합니다.엘릭서와 하스켈의 "Do"표기법
정확한 내용은 무엇입니까? 아니면 Haskell do
표기법과 같습니까? 이는 명령형 코딩을 허용하는 모나드 용 구문 설탕을 구성하는 것입니까?
예 아니요. do
/end
은 키워드 목록의 구문 상 편의입니다.
이전에 if 표현식을 작성했을 것입니다. 다른 사람이 볼 것으로 예상되는 내용은 다음과 같습니다.
if predicate do
true_branch
else
false_branch
end
키워드 목록을 사용하여 작성할 수도 있습니다. 다음은 정확히 동일합니다. do
/end
표기법을 사용
if predicate, do: true_branch, else: false_branch
코드의 블록을 기록 할 때 우리가 상세를 제거 할 수 있습니다. 다음 두 표현식은 동일합니다.
if predicate do
a = foo()
bar(a)
end
if predicate, do: (
a = foo()
bar(a)
)
이것은 함수 정의와 동일합니다. def/2
매크로는 키워드 목록도 사용합니다. 당신은 당신은 getting started 가이드에서이에 대한 자세한 내용을보실 수 있습니다 다음
def foo, do: 5
같은 기능을 정의 할 수 있습니다 의미.