제가 pascal 이라는 언어를 본 적이 있는데, 거기서는 function과 processure 둘로 나누더라구요. ;; 프로씨저는 '명령'을 실행하는 거고, 함수는 '명령수행후에 숫자등을 내 놓는 것'입니다. 즉, 프린트해라, 페이지 넘겨라 등등 행동을 하는 것은 프로씨저. 둘을 더한 값을 내 보내라.는 함수. 이런 식의 개념이었습니다. ;; 그런데 파이썬에서는 이 모든게 함수라는 걸로 다 통합이 된 건데... 함수에서 결과값을 내보내는 것을 return이라는 명령어(함수)로 추가로 기능하는 것 같습니다.
+0
2023년 1월 16일
지금은 값을 출력하고자 하는 목적을 알기에 그렇게 말할 수 있지만, 다른 경우에 연산만 필요 할 수 있기 때문이죠. 출력이 유일한 목적이라면 말씀하신 프린트로 끝내도 되지만 예를들어 x+x+y를 하고 그 값을 z라고 했을때 z+z+w를 한 후에 출력하고자 한다면, 저 더하기 함수를 두 번 호출하고 마지막에 정답과 같이 print하면 되기 때문입니다. 함수를 만드는 것은 결국 "재사용"하기 위함이니까 출력만 되는 함수보다는 더하기만 하는 애가 여러모로 쓰임새가 많겠죠?
+0
2023년 1월 16일
그리고 윗분이 말씀하신 pascal의 경우 오타이신거 같은데 "procedure"와 function으로 구분됩니다. 이거는 오라클같은 sql에서도 쓰이는 개념인데, 간단하게 리턴값이 있느냐 없느냐 차이입니다. 펑션은 무조건 끝날때 프린트가 되었건 숫자가 되었건 결과값 리턴이 있구요. 프로시저는 없습니다. 프로시저 마지막에 print를 써서 값을 출력 할 수는 있지만, 펑션의 결과값 리턴과는 다르게 그냥 그 일련의 작업 수행 과정에서 마지막에 프린트하는 것 뿐이랄까요
+0
2023년 1월 16일
c언어를 예로 들자면 보통 일반적인경우 함수를 선언할 때 리턴하고자 하는 데이터 타입으로 선언합니다. 그래서 정수값을 리턴하고자 하는 함수는 int my_func 이런식으로 선언하고, 반대로 리턴값이 없는 앞서말한 프로시저와 같은 역할은 비어있다는 개념의 void my_func 이런 식으로 선언합니다
+0
베스트 댓글
2023년 1월 16일
사족을 좀 많이 달았는데. 함수로 만드는 목적은 여러번 쓰기 위함이고, 어떻게 하는 게 가장 유용할 지 생각하여 그 방식으로 선언하면 됩니다. 정해진 답은 없습니다.
댓글 3개