2014-04-09 4 views

답변

4

당신은 단지 함수를 호출에 전달할 수 있습니다

fun = (x,y,z)->2x+y-z 
x=[1,2,3] 
y=[2,3,4] 
z=[1,3,5] 
fun(x, y, z) 

이 결과 제공 :

3-element Array{Int64,1}: 
3 
4 
5 

그러나 당신이 원하는 경우 귀하의 예제에 따라 튜플을 사용하여지도를 사용해야합니다 :

x=(1,2,3) 
y=(2,3,4) 
z=(1,3,5) 
map(fun, x, y, z) 

이 결과는 같지만, 튜플로 시간 :

(3, 4, 5) 

이 때문에 *, +이고 - 공식 2x+y-z이 작동하지 않을 수 있습니다 연산자 튜플에 대해 정의되어 있지 않습니다. map을 사용하면 함수를 여러 번 스칼라로 전달하여이 문제를 해결할 수 있습니다.

2

익명 함수를 호출하려면 변수에 익명 함수를 할당해야합니다.

julia> fun = (x,y,z)->2x+y-z 
(anonymous function) 

julia> fun((1,2,3),(2,3,4),(1,3,5)) 
ERROR: no method *(Int64, (Int64,Int64,Int64)) 
in anonymous at none:1 

그것은 작동하지 않습니다, 당신은 x에 설정 한 튜플 때문에 * 기능을 구현하지 않습니다. 그런 다음 X, Y 및 Z가 될 배열을 정의하면

+2

알 수 있습니다. 줄리아와 더 많은 경험을 쌓을 필요가 있습니다. 할당을 요구하지 않는 또 다른 방법은'((x, y, z) -> 2x + y-z) (1,2,3)' – fsmart

+0

네, 가능합니다. – ivarne