| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- list
- xv6
- Snap!
- 맛집
- Operating System
- control flow
- 스크래치
- 푸드트럭
- Scratch
- scheduling policy
- Deep Learning
- 프로그래밍
- Lock
- The beauty and Joy of computing
- 7월4일
- 균형의 정치
- Jupyter Notebook
- CLRS
- 미국
- 운영체제 강의
- 여행
- concurrency
- 코딩
- 독립기념일
- 잘 짜인 코드
- 직업으로서의 정치 서평
- 영어논문
- Process
- 버클리
- insertion Sort
- Today
- Total
여행다니는 펭귄
[The beauty and joy of computing] Lists, Loops, and Higher Order Functions 을 배워보자 (by 스크래치, Snap!) 본문
[The beauty and joy of computing] Lists, Loops, and Higher Order Functions 을 배워보자 (by 스크래치, Snap!)
핑구힝구 2019. 6. 28. 08:56저번에 배웠던 데이터의 종류에 대해 다시 기억을 떠올려 보자.

- 그렇다면 List란 무엇일까?
0개 이상의 값들로 이루어 져 있는 순서가 있는 데이터들의 집합이다.
|
특징: 모든 유형의 데이터를 포함 가능하고 (List 포함) , 위 포함된 데이터들은 순서를 통해서 지정할 수 있다. List는 변경할 수 있다. ( 항목 수 , 색인 값 등)
|

- Control Flow 란 무엇일까?
프로그램이 실행되는 순서를 뜻한다.
|
특징: 한줄 한줄 쓴다고 한다. execution 이 procedure 에 도달한다면 우리는 (procedure 이 실행된다는 의미로 번역) , procedure 안에 있는 코드를 돌려야 한다. 아래 상황이 오기 전까지! -> procedure에 더이상 돌릴 코드가 없을 때 -> execution이 report 했을 때 -> 블록이 자신이 호출 된 곳으로 돌아 갔을 때? |

만약 If 안의 내용이 True 라면, 내용을 실행하고 False 라면 내용을 실행하지 않고 이 부분을 Skip 하고 다음 줄으로 넘어간다.

만약 If 안의 내용이 True 라면, if 다음의 내용을 실행하고 False 라면 else 부분의 내용을 실행한다.

안의 내용이 사실이 될 때 까지 코드를 반복한다. 그 후 넘어간다.

i를 첫번째 번호로 설정하고, 두번째 번호보다 작은 경우 반복해서 1을 더해준다. i 가 두번째 번호보다 크거나, 같아질 경우 이 코드를 넘어간다.

List 안의 모든 item에 대해 위 코드를 실행 한 후 더이상 item 이 없으면 다음 코드로 넘어간다.
문제1.

정답은 바로 E이다. 왜 그런지 모르겠으면, item (n) of DATA가 DATA 라는 List의 n 번째 item 이라는 걸 알았으면 좋겠다.
Higher-Order Functions
위 함수는 다음 중 둘 이상을 실행하는 함수입니다.
입력 (도메인)으로 함수를 가져옵니다. 함수 (범위)를 출력합니다.
Snap에서 사용하는 Higher-Order Functions는
Map,Keep,Combine이 있습니다.
Map

Keep

Combine

문제 2

higher function에 대해 더 자세한건 다음 시간에 배우도록 하겠습니다.
Summary
-
Lists are a new data type that let us group values in order ( Lists 란 새로운 데이터 타입으로 특정 값들을 순서대로 묶는 것입니다. )
-
Control flow allows for us to manage what parts of a program are executed and in what order ( Control flow는 우리에게 무엇을 실행할지 어떤 순서로 실행할지를 제어하게 해 줍니다. )
-
Map, Keep, and Combine are higher-order functions that work with lists (Map Keep Combine과 같은 higher order functions는 List와 함께 작동합니다. 모든 Higher-order function이 그러는건 아님!)
The actual implementations of Map, Keep, and Combine are below our level of abstraction

'The beauty and joy of computing' 카테고리의 다른 글
| 우리의 컴퓨터는 얼마나 빨라질 수 있을까? (0) | 2019.07.16 |
|---|---|
| 알고리즘 테스트(Testing) 과 코딩 연습 (Coding Practice) (1) | 2019.07.16 |
| [알고리즘 복잡도] Algorithmic Complexity (0) | 2019.07.16 |
| 스크래치와 스킴을 합친 프로그램 Snap! 사용 링크 (0) | 2019.06.28 |
| [The beauty and joy of computing] Building blocks (0) | 2019.06.27 |