문제

나는 어떤 방식으로 평가를 방지하기 위해 추진하는 모든 내장 수학적 기능에 당황합니다. Unevaluated, Defer, Hold, 그리고 6 개 이상의 양식 Hold*. Mathematica 문서는 왜 하나 또는 다른 것을 선택할 것인지 설명하지 않고 각 기능을 분리하여 설명합니다. 누구 든지이 모든 기능에 대한 일관된 설명을 제공 할 수 있습니까? 모든 것이 나에게 복잡한 혼란처럼 보인다. 모든 것을 LISP 매크로와 관련시키는 것은 시작하기에 좋은 장소 일 수 있습니다.

Mathematica 언어의 대부분은 놀랍도록 잘 설계되었지만 Wolfram이 실제로이 측면에서 코너에 그려진 것처럼 보입니다. 아니면 뭔가 빠질 수 있습니다.

도움이 되었습니까?

해결책

이것들은 매우 까다로운 구성 요소이며 명확한 설명을 제공하기가 어렵습니다. 그들은 LISP 매크로만큼 간단하지 않습니다 (또는 그 문제에 대해 LISP의 관계. QUOTE 그리고 EVAL). 그러나 Robby Villegas의 1999 년 대화 "비평가 표현"의 메모 Wolfram의 웹 사이트에서.

Defer Mathematica 6.0의 새로운이기 때문에 그 대화에서 생략됩니다. 많이 좋아요 HoldForm, 프론트 엔드에서 출력 될 때 (베어 커널은 아님) 스트라이핑되어 입력으로 사용할 수있는 표현식을 남깁니다. 이는 팔레트에서 사용자가 편집하고 평가할 수있는 표현식을 프로그래밍 적으로 구성하려는 경우 매우 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top