| SBE 4장 call-by-value, call-by-name 질문! | 네피림 | 21.10.10 22:08 | 미리 보신 분들 심심하시죠? 질문 하나 던져 봅니다. Call-by-value has the advantage that it avoids repeated evaluation of 이라는 문장이 나오는데, 명확하게 설명 좀 해주세요. 미리 감사 드립니다~ |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | fupfin | 21.10.10 22:42 | 조용히 call of duty를 설치하고... 싶어지네요. |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | 네피림 | 21.10.10 22:45 | @_@;;; 네!? 질문에 답변을 좀;;; ㅋㅋ 2010년 10월 22일 오후 2:42, fupfin <fup...@gmail.com>님의 말:
|
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | Outsider | 21.10.10 22:48 | 동작자체는 명확(?)한 것 같은데요... 어떤 상황에서 사용해야 하는가에 대해서 고민이 좀 있다가... 지지난주에 약간 이해되는것 같았는데.. 집에서 다시 보니까 잘 기억이 안나네요... ㅠㅠ 저도 궁금...
|
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | 네피림 | 21.10.10 22:50 | |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | Park, Sungchul | 21.10.10 23:03 | 통화별로 가치가 반복 평가의 피할 수있는 장점을 가진인수. 호출에 의해 이름은 인자의 평가를 피할 수있는 장점을 가지고 매개 변수는 함수에 의해 전혀 사용하지 않을 때. 라고 구글신이 알려주셨습니다. 지금 좀 읽어봤는데 스칼라에 이런 게 되는군요. 오호... 신기... 제가 발로 번역하면... |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | 원상호 | 22.10.10 00:32 | interpreter가 파라미터를 해석하는 방식이 두가지가 있다는 의미인 것 같습니다. call-by-value는 파라미터를 값으로 미리 evaluate한다는 의미인 것 같고, call-by-name는 파라미터를 심볼로 해석해서 값으로 evaluate하지 않는다는 의미... 가 아닐런지. 그래서
For expressions that use only pure functions and that therefore can be reduced with the substitution model, both schemes yield the same final values. 즉, 함수 호출로만 이루어진 함수의 경우는 두가지가 같은 방식이 될 것이고,
(미리 evaluate했으니깐)
parameter is not used at all by the function. (사용하지 않는 arguments는 제거할 수 있으므로) 아무래도 컴파일러가 어떻게 동작하는지에 대해 잘 아는 분이 대답해 주시면 더 명확해지지 않을까 생각합니다.
2010/10/22 fupfin <fup...@gmail.com>
-- -----------~~-----------------~~-----------------~~------------------~~--------------------~~--------------------~~------ * 원상호 (Won, Shawn), BPNR * E-Mail (sh...@bpnr.co.kr, shaw...@gmail.com), Jabber ID : shaw...@gmail.com * --- "The best way to predict the future is to invent it" - Alan Kay -----------~~-----------------~~-----------------~~------------------~~--------------------~~--------------------~~------ |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | 원상호 | 22.10.10 00:35 | 그 아래에 call-by-value의 경우, 왜 first(1, loop)가 그 자신으로 재해석되는지를 이해하시면 될 듯 한데요...
|
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | AnArcher | 22.10.10 01:26 | 함수를 호출할때 함수 인자를 평가하여 그 값으로 호출하면 call-by-value이고, 함수를 호출할때 함수 인자를 평가하지 않고 함수를 호출하고 함수 안에서 평가가 이루어지면 call-by-name으로 알고 있습니다. 스칼라는 기본적으로 call-by-value이고 call-by-name을 사용하려면 파라미터의 타입에 => 을 추가해주면 되는 걸로 알고 있습니다. ( a : => Boolean )
함수 혹은 값을 던지고 싶고 그 평가가 함수 안에서 이루어지고 싶다면 쓸만하지 않을까 이야기 나왔는데요. 대충 지금 막 생각해보면 log.warn("네피림님이 "+ studyMembers.mkString(",") + "(들)에게 밥을 사신다면 유혈사태를 벌어지지 않을 것입니다. ")
일때 위의 메세지가 함수 안에서 평가가 이루어지므로 만일 log.LEVEL = log.INFO이면 평가를 안 할수 있기때문에, if(log.logLevel == log.INFO) { ... } 같은 구문을 매번 작성할 필요가 없지 않을까 싶은데요. @제가 이해력이 부족해서 잘 못 이해하고 있을수 있습니다. ~_~
2010/10/22 네피림 <i01...@gmail.com>
-- email: anar...@gmail.com blog: http://anarcher.appspot.com/ |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | daclouds | 22.10.10 08:51 | 그 날 얘기했던 내용들이 새록새록 떠오르네요. 예가 적절한 것 같습니다. 자세한 사항은 만나서... 스터디 오세요~~ 2010년 10월 22일 오후 5:26, Myoungsoo Shin <anar...@gmail.com>님의 말: |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | Zéide | 23.10.10 00:45 | 이번 스터디에서는 어떤 이야기가 나왔었는지 궁금하네요. 2010/10/23 JONG-IL SEOK <dacl...@gmail.com> -- Ne perdez pas courage! |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | Outsider | 25.10.10 05:51 | 스터디에 못오신 분들을 위해서 위 메일에 대해서 약간 정리된 내용을 올려드립니다. 저는 올리는 역할만 할뿐입니다. ㅎ call-by-name 을 사용하려면 => 을 추가하면 되는건 맞습니다만, 결론을 먼저 이야기하니 by-name 관련 내용을 따로 외워야 하는 느낌이 들고, 오해의 소지도 있는 것같아 참고로 말씀드리면
함수를 인자로 전달할 때, 인자 없는 함수에 대해서는 그 표기를 ()=> 어쩌구 저쩌구 대신 ()를 빼고 표기할 수 있습니다. 맹수님이 제시한 로그 남기기를 예로 들면 (지연 평가를 위해 함수를 인자로 전달 받음)
>> 말하고 싶은 요점은 by-name을 하기 위해 =>를 붙인다고 하기보다는,
함수를 넘기면 함수를 호출하기 전까지는 실행이 되지 않으니까 지연 평가와 당연히 관련이 있고 "인자 없는 함수의 변종 표기법 같은게 => 다" 라고 이해함 더 좋지 않을까~ 입니다. 참고로, => 게 by-name 호출이라고 외우면 될 것 같은
scala.math.abs( => 10) 은 by-name으로 호출되는게 아니라 실행이 되지를 않습니다. 2010/10/23 Zéide Peace <zeid...@gmail.com> |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | Park, Sungchul | 25.10.10 06:47 | 왜 호출하는 쪽에서 call by name인지 value인지 선택하지 않고 받는 쪽에서 하나 싶었는데 그런 이유였군요. 차라리 ()를 생략하도록 했으면 더 낫지 않았을까 싶네요. 이러게 정의하면 와
모두 되게... |
| Re: [scala-korea] SBE 4장 call-by-value, call-by-name 질문! | AnArcher | 09.11.10 07:22 | [WIKI] 이 글타래는 제가 정리해서 위키에 추가하도록 하겠습니다. :-)
|