티스토리 뷰

Core_Content/용어

주요 용어 (2)

Haskell iammaker 2015.08.10 12:05

call by value, call by reference


자바(Java)의 창시자라 불리우는 제임스 고슬링(James Arthur Gosling, 1955년 5월 19일 ~ )의 유명한 말중에 하나가 " 자바(Java)는 언제나 call by value이다"라고 했었고, 이에 대한 논쟁이 있었다고 합니다. 

call by value 고정값으로 불러내기, call by reference 주소로 불러내기


pointer (찜, C언어) *찜 사람이나 사물을 미리 점찍어 둠

C에서 어려워 하는 것중 하나가 pointer가 아닐까 싶다. 그렇다면 Sherlock Homes와 Dr. Watson이 나오는 영화를 먼저 한번 보고 설명을 보시면 좋을 것 같다. 

pointer라는 말은 개의 품종인 pointer가 있다.

pointer 저거 가져와라고 사냥한 주인이 가리키면 그것을 가져온다. 여기에서 pointer가 유래 했을 수도 있겠다. 프로그래머들은 괴짜가 많으니까라고 생각해봤다. ​관련 동영상 : https://www.youtube.com/watch?v=bCR2Faegd-U 

 

 pointer(찜)의 주요한 역할은 맡은 주소를 찜하는 것이고, 찜한 곳에서 여러가지 일을 처리한다. 


(Pointer) 변수에서 찜 찜할 주소가 있다. 

(Pointer) 변수의 선언은 

int *DrWatson; 이렇게 한다. 즉, DrWatson은 찜을 한 주체이다. 

위와 같이 선언하게 되면 int형으로(정수로) 주소를 알려주는 찜(Pointer) 변수 DrWatson이 만들어진다.


이제 찜을 하는 주체에게 찜할 주소를 알려줘야 한다. DrWatson = &SherlockHomes;


주소는 &(Ampersand, 엠퍼센드)를 사용하는데, &(Ampersand, 엠퍼센드)는 서양에서 문패에 쓰인 모양과 유사하다. &는 주소를 뜻하는 연산자 이며, 문패에서 따온 것이 아닐까 생각한다. ​



(자료원 : https://en.wikipedia.org/wiki/221B_Baker_Street, CCL)


구글 이미지에서 'address plaques'로 검색해보면 '&' 와 비슷하게 생겼다.

(구글 이미지 주소: http://bit.ly/1MjwRtK)

그리고 찜(Pointer) 변수에 담긴 주소에서 일을 하려면 * 연산자를 사용하면 된다.

 

찜(Pointer) DrWatson은 자신이 아는 SherlockHomes의 주소('221b')에 뭔가를 넣어둘 수 있다.

DrWatson이 어디를 담당하는지를 물어보면 221b를 가리키고 있는 것이다.

*DrWatson = 10000; //DrWatson이 맡고있는(가리키는) 주소에 10000 저장하기 (SherlockHomes=10000; 과 동일한 효과를 낸다)


stack(차곡차곡 저장소), heap(이리저리 저장소)


기억장치(memory)는 크게 stack과 heap 저장소가 있는데 그 성격이 달라요. 

stack 차곡차곡 저장소, 천천히 보관된다. 

(CCL Flickr http://bit.ly/1PaaIMP 


heap 이리저리 저장소, 빨리 빨리 처리된다. 

(CCL Flickr http://bit.ly/1J0KtJs )


module 모음, 자바의 package 묶음

하스켈의 module(모둠, 모음)은 자바의 package(묶음) 정도에 해당하는 것 같다. 

‘모둠’은 현대국어 ‘모으다’의 옛말, '모드다‘, ’모두다‘의 어간에 명사형 어미(또는 명사 파생 접미사) ‘-ㅁ’이 붙어서 형성된 것이라고 보는 견해가 있습니다. '모드다', '모두다‘는 현재는 사용되지 않는 말이지만, 중국, 북한 등의 일부 지역에서는 ’모으다‘의 의미로 남아 있습니다. 그러므로 어원적으로는 '모둠', '모듬'이 다 가능한 것으로 보나, ‘모둠꽃밭’, ‘모둠냄비’, ‘모둠발’, ‘모둠밥’과 같이 ‘모둠’이 들어 있는 여러 단어가 이미 존재하기 때문에 '모둠'을 표준으로 보는 견해가 일반적입니다. 문의하신 '모둠'의 어원도 이와 관련된 것으로 판단됩니다. (자료원 : 네이버 국어사전 우리말 바로쓰기)


..은 간격유지의 명령어

  1. ghci> [2,4..20]  
  2. [2,4,6,8,10,12,14,16,18,20]  
  3. ghci> [3,6..20]  
  4. [3,6,9,12,15,18]


Script 대본어

소설은 대개 이렇게 표현이 많습니다. 

촤악! 장생이 부채를 펼쳤다. 짚신에 쓸리고 돌에 찢겨 상처투성이가 된 맨발이 어둠에 먹혀버린 눈동자를 대신하여 줄을 밟으며 방향을 가늠했다. 

“어릴 적 광대패를 처음 보고는 그 장단에 눈이 멀고.” 
기둥을 휘감은 오색 천이 갑자기 세진 바람을 맞아 휘날렸다. 장생도 나뭇가지 끝에 매달린 나뭇잎처럼 바람에 휘청거렸지만 용케 균형을 잡으며 한 발 한 발 앞으로 나아갔다. 
“광대 짓을 할 때는 어느 광대 놈과 짝 맞추어 노는 게 어찌나 신이 나던지…….” 
쏟아지는 햇빛이 그대로 통과해버릴 것처럼 투명하도록 새하얘진 공길이 어깨를 들썩이며 입술을 깨물었다. 소매 끝에서, 옷깃 사이에서 공길이 삼켜버린 눈물이 그대로 배어 나오는 듯했다. 
장생은 거의 떨어질 것처럼 휘청댔지만 무릎을 굽히고 부채를 흔들어 간신히 균형을 되찾았다. 그럼에도 사설은 막힘없이 흘러나왔다. 
“…… 그 신명에 눈이 멀고!” 
살랑살랑 부채가 흔들리며 장생도 다시 몸을 곧게 펴기 시작했다. 
“한양 와서는 저잣거리 구경꾼들이 던져주는 엽전에 눈이 멀었지.” 
공길과 함께 살아온 숱한 세월이 장생의 사설에 실려 자기 뒤를 돌아보았다. 눈물과 웃음을
..

하지만 대본은 짧고, 간단한 대화로 구성되죠. 그래서 Script는 대본어라고 표현하는 것이 맞다고 생각합니다. 

연산그 일이라면 금부에서 하고 있니 않는냐금부의 간섭을 받기 싫다그래뭐라 이름할까놀 희()에 즐길 락(), 희락원이 어떠냐?

공길--이는 이름 없는 꽃이 그 이름을 받아 고개를 드는 것 같습니다.

공길상감마마는 역시 작명의 달인이십니다.

연산그래도 니가 없으면 희락원에 향기가 나겠느냐여봐라! (비단도포를 가져오면 주며입어 보아라내 선물이다.

연산: (공길이 도포를 입은 것을 보며복색이 사람을 만든다고 하더니 이를 보고 하는 소리구나그 도포에 맞는 자리가 있어야지내 너를 희락원 대봉에 봉하겠다.

놀라는 공길 


류(類,class), package 묶음

class는 종속과목강문계의 '강'에 해당한다. 그렇게 분류한 것이다. 분류는 종류에 따라서 가르는 것이다. 

 계(界) kingdom 예: 생태계
 문(門) divisio, division 
 강(綱) classis, class
 목(目) ordo, order
 과(科) familia, family
 족(族) tribus, tribe
 속(屬) genus
 종(種) species

그래서 아마도 inheritance와 같은 개념이 나오지 않았을까 생각이든다.즉, 대분류, 중분류, 세분류로 나누지 않는가?


list comprehension 조건형 목록

list comprehension(조건형 목록, 목록 풀이) * 풀이 : 모르거나 어려운 것을 알기 쉽게 밝히어 말하는 일


list(동종목록)와 tuple(이종목록)

자료원 : http://bit.ly/1MNCh03

Lists are intended to be homogeneous sequences, while tuples are hetereogeneous data structures.


Higher Order Logic 고차논리

자료원 : https://en.m.wikipedia.org/wiki/Higher-order_logic

Higher-order logic

In mathematics and logic, a higher-order logic is a form of predicate logic that is distinguished from first-order logic by additional quantifiers and a stronger semantics. Higher-order logics with their standard semantics are more expressive, but their model-theoretic properties are less well-behaved than those of first-order logic.

First-order logic quantifies only variables that range over individuals; second-order logic, in addition, also quantifies over sets; third-order logic also quantifies over sets of sets, and so on. For example, the second-order sentence ∀P((0∈P ∧ ∀i(i∈P → i+1∈P)) → ∀n(n∈P)) expresses the principle of mathematical induction. Higher-order logic is the union of first-, second-, third-, …, nth-order logic; i.e., higher-order logic admits quantification over sets that are nested arbitrarily deeply.

Higher-order simple predicate logic


The term "higher-order logic", abbreviated as HOL, is commonly used to mean higher order simple predicate logic. Here "simple" indicates that the underlying type theory is simple, not polymorphic or dependent.

There are two possible semantics for HOL. In the standard or full semantics, quantifiers over higher-type objects range over all possible objects of that type. For example, a quantifier over sets of individuals ranges over the entire powerset of the set of individuals. Thus, in standard semantics, once the set of individuals is specified, this is enough to specify all the quantifiers.

HOL with standard semantics is more expressive than first-order logic. For example, HOL admits categorical axiomatizations of the natural numbers, and of the real numbers, which are impossible with first-order logic. However, by a result of Gödel, HOL with standard semantics does not admit an effective, sound, and complete proof calculus.

The model-theoretic properties of HOL with standard semantics are also more complex than those of first-order logic. For example, the Löwenheim number of second-order logic is already larger than the first measurable cardinal, if such a cardinal exists. The Löwenheim number of first-order logic, in contrast, is ℵ0, the smallest infinite cardinal.

In Henkin semantics, a separate domain is included in each interpretation for each higher-order type. Thus, for example, quantifiers over sets of individuals may range over only a subset of the powerset of the set of individuals. HOL with these semantics is equivalent to many-sorted first-order logic, rather than being stronger than first-order logic. In particular, HOL with Henkin semantics has all the model-theoretic properties of first-order logic, and has a complete, sound, effective proof system inherited from first-order logic.

Examples and properties


Higher order logics include the offshoots of Church's Simple Theory of Types and the various forms of Intuitionistic type theory. Gérard Huet has shown that unifiability is undecidable in a type theoretic flavor of third-order logic, that is, there can be no algorithm to decide whether an arbitrary equation between third-order (let alone arbitrary higher-order) terms has a solution.

Up to a certain notion of isomorphism, the powerset operation is definable in second-order logic. Using this observation, Hintikka established in 1955 that second-order logic can simulate higher-order logics in the sense that for every formula of a higher order-logic one can find an equisatisfiable formula for it in second-order logic.

The term "higher-order logic" is assumed in some context to refer to classical higher-order logic. However, modal higher-order logic has been studied as well. According to several logicians, Gödel's ontological proof is best studied (from a technical perspective) in such a context.


고차(원)함수(higher order function)

고차(원)함수는 다른 함수를 생산/소비하는 함수를 말합니다. 대표적인 고차(원)함수들은 아래와 같은 기능을 해요.

- Map: 데이타의 모든 요소를 전달받은 함수를 통해 가공하고 변환된 결과를 응답한다.

- Filter : 데이터의 모든요소를 전달받은 함수를 통해 걸러내고 그 결과를 응답한다. 

- Reduce : 가공된 데이타를 다양한 명령을 통해 결합하고 그 결과를 응답한다. 



댓글
공지사항
최근에 달린 댓글
Total
4,996
Today
0
Yesterday
0