Soeun/Sona Lee
1 min readMar 3, 2018

--

찾아보니 일급 객체요건이 꼭 3개만 있는 것이 아니라 다음과 같은 의미들이 있을 수 있더라구요 :)

언어에 따라 다르지만 ..

  • being expressible as an anonymous literal value
  • being storable in variables
  • being storable in data structures
  • having an intrinsic identity (independent of any given name)
  • being comparable for equality with other entities
  • being passable as a parameter to a procedure/function
  • being returnable as the result of a procedure/function
  • being constructible at runtime
  • being printable
  • being readable
  • being transmissible among distributed processes
  • being storable outside running processes

그리고 Structure and Interpretation of Computer Programs이라는 책에도 언급이 되었더라구요:) 링크(https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#call_footnote_Temp_121)

In general, programming languages impose restrictions on the ways in which computational elements can be manipulated. Elements with the fewest restrictions are said to have first-class status. Some of the ``rights and privileges’’ of first-class elements are:64

  • They may be named by variables.
  • They may be passed as arguments to procedures.
  • They may be returned as the results of procedures.
  • They may be included in data structures.65

--

--