책을 보다가 이런 문구가 있네요.
in Mel, arrays are passed "by reference" into procedures, which means they're not copied. You can clear the array and fill it up again from within the procedure. This is faster than returning the array from the proc, which would cause a copy of all the elements to be made.
Since arrays are passed by reference, if you pass an array as an argument to procedure and modify that argument within the procedure, the array will hanve the modified values upon return from the procedure call.
All other data types(e.g., string, int, float) are passed "by value".
You can compare this with how Maya works with references in which geometry or aniamtion data is not copied to the actual scene, but read from a remote location on disk.
즉, procedure에 인자로써, array를 사용하는 경우와 array를 사용하지 않는 경우의 차이를 설명하는 것 같은 데, 보다 자세한 설명 부탁드릴께요???
또한, 이런 문구가 있네요.
Another example is pointers in C++, which allow you to pass the address of a (potentially large) object in memory around, instead of the object itself.
이 부분도 설명 부탁드릴께요?????

call by reference와 call by value라는 개념이 있습니다.
call by reference를 하면 메모리상에 변수의 값이 저장되는 주소를 넘겨주는 것이구요,
call by value를 하면, 메모리상에 하나의 장소가 더 생기고, 값이 그리고 복사가 되는거에요.
MEL 프로시져에서 string이나 int, float 타입의 변수들은 call by value이지만, array는 call by reference를 한다는 이야기네요.
그리고 이건 C++ 프로그램에서 pointer를 넘기는 것과 비슷하다는 설명이지요.
실제 사용하실 때 느껴지는 점은, call by value로 넘겨 받은 변수를 프로시져내부에서 값을 바꾸어도 원래의 변수 값이 바뀌진 않는데요 (사본을 사용하니까요),
call by reference로 넘겨진 변수는 프로시져 내부에서 값을 바꾸면 원래의 변수 값도 같이 바뀝니다. 메모리 상의 저장 장소는 한군데 뿐이니까요.