Wolfram Computation Meets Knowledge

Wolfram 언어:
프로그래밍의 기본

다음 언어의 주의 사항 표시:
모든 섹션 
  • Wolfram 언어에 대해
  • 다음 언어의 주의 사항 표시
  • Java 주의 사항 표시
  • Python 주의 사항 표시
  • 주의 사항 숨기기
사용 시작

함수 정의 비디오 버전

Wolfram 언어에서 함수 정의는 패턴에 대한 변환 규칙을 제공하여 할당됩니다.

Java 프로그래머를 위한 주의 사항:

객체 지향적인 Java 언어의 메소드와 달리, Wolfram 언어의 함수는 클래스의 계층 구조에 제한되지 않습니다.

xy 두 개의 인수를 가지는 함수를 정의합니다:

In[1]:=

Java 프로그래머를 위한 주의 사항:

Wolfram 언어의 기본적인 함수 정의에서 매개 변수 이름 뒤에 공백("블랭크") _을 사용합니다. Java 메소드 정의의 경우와 달리 Wolfram 언어의 함수는 기본적으로 모든 종류의 데이터를 허용합니다.

Python 프로그래머를 위한 주의 사항:

Wolfram 언어의 기본적인 함수 정의에서 매개 변수 이름 뒤에 공백("블랭크") _을 사용하므로 매개 변수가 임의의 기호 패턴에 대응할 수 있습니다. 이것은 Python에서 기본적으로 불가능한 파워풀하고 유연한 함수 정의를 가능하게 합니다. Wolfram Client Library for Pythonsession.function을 사용하면 Python에서 이용하는 Wolfram 언어 기반의 함수를 정의할 수 있습니다.


정의를 사용합니다:

In[2]:=
Out[2]=

정의를 소거합니다:

In[3]:=

함수는 일련의 케이스에서 값을 지정하는 것으로 정의할 수 있습니다:

In[1]:=
Out[1]=

In[2]:=
Out[2]=

정의되지 않은 케이스는 변환되지 않습니다:

In[3]:=
Out[3]=

/;를 사용하면 특정 조건이 충족될 때에만 정의를 적용하도록 제한할 수 있습니다:

In[4]:=

Java 프로그래머를 위한 주의 사항:

Wolfram 언어에서 /; 연산자는 단축된 If 문과 유사하게 작동합니다.

Python 프로그래머를 위한 주의 사항:

Wolfram 언어에서 /;연산자는 함수에 적용되는 단축된 if 문과 유사하게 작동하여 함수는 조건에 따라 유연하게 정의를 선택할 수 있습니다.


좌변에 대한 변환을 정의할 수 있습니다. 인수의 구조를 "분해"하는 편리한 방법입니다:

In[1]:=

In[2]:=
Out[2]=

Wolfram 언어에는 이와 같은 타입이 없으며 모든 것은 기호식입니다. 식의 "헤드"는 일종의 일반화된 타입 지정자로 사용할 수 있습니다.

f가 "u 객체"나 "v 객체"에 적용되었을 때의 동작에 대해 서로 다른 정의를 제공합니다 :

In[1]:=
In[2]:=

Java 프로그래머를 위한 주의 사항:

이것은 다양한 데이터 유형에 대한 Java 메소드를 오버로드하는 것과 비슷하지만, Wolfram 언어의 함수는 인수의 기호적 구조에 따라 보다 일반적으로 오버로드 할 수 있다는 차이점이 있습니다.

Python 프로그래머를 위한 주의 사항:

Wolfram 언어의 함수는 임베디드 패턴 매칭 기능을 사용하여 인수의 기호적 구조에 따라 그 동작을 변경할 수 있습니다. Python에서 이러한 기능을 수행하려면 매우 복잡한 사용자 지정 코드 또는 타사 라이브러리가 필요합니다.

참조: 변수와 함수의 정의


두 숫자를 합한 함수 f (예: f[3, 4] == 7)를 정의하는 것은 다음 중 무엇인가요?


{f[1], f[2], f[3], f[4]}{f[1], 5, 6, f[4]}로 평가되는 것은 다음 중 어떤 정의를 사용할 때 일까요?


함수 ff[x_, y_] := x + y로 정의되어 있는 경우, 다음 중 어떤 것이 f[a, b]의 값이 될까요?

© 2024 Wolfram. All rights reserved.