함수 정의
Wolfram 언어에서 함수 정의는 패턴에 대한 변환 규칙을 제공하여 할당됩니다.
Java 프로그래머를 위한 주의 사항:
객체 지향적인 Java 언어의 메소드와 달리, Wolfram 언어의 함수는 클래스의 계층 구조에 제한되지 않습니다.
x와 y 두 개의 인수를 가지는 함수를 정의합니다:
Java 프로그래머를 위한 주의 사항:
Wolfram 언어의 기본적인 함수 정의에서 매개 변수 이름 뒤에 공백("블랭크") _을 사용합니다. Java 메소드 정의의 경우와 달리 Wolfram 언어의 함수는 기본적으로 모든 종류의 데이터를 허용합니다.
Python 프로그래머를 위한 주의 사항:
Wolfram 언어의 기본적인 함수 정의에서 매개 변수 이름 뒤에 공백("블랭크") _을 사용하므로 매개 변수가 임의의 기호 패턴에 대응할 수 있습니다. 이것은 Python에서 기본적으로 불가능한 파워풀하고 유연한 함수 정의를 가능하게 합니다. Wolfram Client Library for Python의 session.function을 사용하면 Python에서 이용하는 Wolfram 언어 기반의 함수를 정의할 수 있습니다.
정의를 사용합니다:
정의를 소거합니다:
함수는 일련의 케이스에서 값을 지정하는 것으로 정의할 수 있습니다:
정의되지 않은 케이스는 변환되지 않습니다:
/;를 사용하면 특정 조건이 충족될 때에만 정의를 적용하도록 제한할 수 있습니다:
Java 프로그래머를 위한 주의 사항:
Wolfram 언어에서 /; 연산자는 단축된 If 문과 유사하게 작동합니다.
Python 프로그래머를 위한 주의 사항:
Wolfram 언어에서 /;연산자는 함수에 적용되는 단축된 if 문과 유사하게 작동하여 함수는 조건에 따라 유연하게 정의를 선택할 수 있습니다.
좌변에 대한 변환을 정의할 수 있습니다. 인수의 구조를 "분해"하는 편리한 방법입니다:
Wolfram 언어에는 이와 같은 타입이 없으며 모든 것은 기호식입니다. 식의 "헤드"는 일종의 일반화된 타입 지정자로 사용할 수 있습니다.
f가 "u 객체"나 "v 객체"에 적용되었을 때의 동작에 대해 서로 다른 정의를 제공합니다 :
Java 프로그래머를 위한 주의 사항:
이것은 다양한 데이터 유형에 대한 Java 메소드를 오버로드하는 것과 비슷하지만, Wolfram 언어의 함수는 인수의 기호적 구조에 따라 보다 일반적으로 오버로드 할 수 있다는 차이점이 있습니다.
Python 프로그래머를 위한 주의 사항:
Wolfram 언어의 함수는 임베디드 패턴 매칭 기능을 사용하여 인수의 기호적 구조에 따라 그 동작을 변경할 수 있습니다. Python에서 이러한 기능을 수행하려면 매우 복잡한 사용자 지정 코드 또는 타사 라이브러리가 필요합니다.
참조: 변수와 함수의 정의