reify
및 eval
을 사용하여 스칼라에서 위생적인 매크로를 작성하는 것이 쉽습니다. 그러나 it's not always possible은 reify
과 eval
을 사용합니다.정품이없는 상태에서 위생 보장
매크로를 사용할 수 없으면 매크로가 위생적이라는 것을 보장하는 규칙은 무엇입니까? 나쁜 위생이 균열을 빠져 나가지 않았는지 확인하기 위해 매크로를 테스트 할 수있는 방법이 있습니까?
upd. 2.10.0 이후의 이정표에서 Expr.splice
으로 Expr.eval
의 이름이 바뀌 었습니다.
[위키 피 디아> 위생적 매크로] (http://en.wikipedia.org/wiki/Hygienic_macro)를 읽는 것이 도움이 될 수 있습니다. 매크로에 대한 많은 경험이 없기 때문에 내가 할 수있는 최선의 방법은 위키 피 디아 정보를 재연하는 것입니다. –
예 - 저는 전 생애의 Lisp 및 C++ 매크로에 익숙합니다. 하지만 하나의 언어로 작동하는 것은 반드시 다른 언어로 직접 포팅하지는 않습니다 :-) –