If a pattern match fails in a lambda, a runtime error eccurs, so be careful!
ghci> map (\a,b) -> a + b) [(1,2),(3,5)]
[3,8]
If a pattern match fails in a lambda, a runtime error eccurs, so be careful!
ghci> map (\a,b) -> a + b) [(1,2),(3,5)]
[3,8]
Java에서 아래와 같은 것들을 값 Value 라고 부릅니다. 그리고 이 값들은 함수에 인자로 전달하거나 리턴할 수 있어서 First-class citizen 입니다.
아래와 같은 것들은 함수에 인자로 전달하거나 리턴할 수 없어서 second-class citizen 입니다. 이런 것들은 value가 아닙니다.
왜 그래야 하는지 모르겠지만 라벨은 모종의 정렬 순서를 지켜야 한다. 그래서 의미가 없어 보이지만 reviewer의 이름 앞에 branch
라는 단어를 넣어야 한다. 왜 branch
라는 단어를 선택했냐고 하면 branch
의 첫 글자인 알파벳 b
가 아래에서 설명할 라벨 approve
의 첫 글자인 알파벳 a
바로 다음 글자이기 때문이다.
approve
: 왜 그래야 하는지 모르겠지만 제일 첫번째 위치해야 하는 라벨이다. PR이 생성되는 순간 이 라벨이 제일 먼저 생성 되어야 한다. '승인이 필요한 PR' 이라는 뜻이다. 모든 리뷰어의 리뷰가 끝나면 마지막으로 리뷰를 마친 리뷰어가 이 라벨을 지우고 merge
라벨을 붙인다.
merge
: 모든 리뷰가 끝나고 이제 머지를 기다린다는 뜻이다. 머지가 완료되면 이 라벨을 지운다.
branch <reviewer name>
: 리뷰어로 지정된 사용자의 이름을 뜻한다. 자신의 이름이 붙어 있는 라벨이 있다면 그 PR의 리뷰를 해야 한다. 자신의 리뷰가 끝나면 그 라벨을 지운다.
원서로 IT 기술 문서 읽기는 어렵지 않다.
누구나 모국어가 아닌 원서로 책을 읽기는 쉽지 않을 것이다. 나도 처음부터 원서로 IT 기술 문서를 읽는 것을 좋아하지는 않았다. 처음에는 "내가 어떻게 원서를 읽어? 한글책도 안 읽는데..." 라고 생각했다.
그런데 실무를 하다가 필요한 기술을 익히기 위해 관련 서적을 찾다보니 아래와 같은 문제가 있었다.
그래서 어쩔 수 없이 번역서보다는 원서를 찾아서 보기 시작했다. 처음에는 한문장 한문장을 읽는다는 느낌으로 천천히 읽었다. 모르는 단어는 네이버 영어 사전에서 검색을 했다. 내용이 머리에 안 들어올 때는 문장을 종이에 옮겨 적어보기도 했다.
import java.util.ArrayList; | |
import java.util.Collections; | |
class Solution { | |
public int[] solution(int N, int[] stages) { | |
int[] answer = new int[N]; | |
ArrayList<Stage> theStages = | |
new ArrayList<Stage>(); | |
for (int i = 0; i < N; i++) { |
이 글은 Learn You a Haskell for Great Good 중 일부를 정리한 것이다.
타입 Ordering
은 뭔가 비교한 결과를 표현할 때 쓴다. Ordering
에는 값이 세 개 있다.
data Ordering =
LT
| EQ