Archive

    [Rustlings] 3. if

    if문은 statement나 expression로 쓸 수 있다. 다른 프로그래밍 언어처럼 조건에 따라 statement를 처리할 수 있다. 또한 if문을 expression으로 사용한다면 조건에 따라 다른 계산 결과를 줄 수 있다. 다만 expression으로 사용할 때는 반드시 각 결괏값은 같은 타입이어야 한다. 그리고 한 줄만 들어간다고 해도 중괄호를 생략해서는 안된다. let price = if apples > 40 { apples } else { apples * 2 } 또한 Rust는 bool 타입을 따로 가지고 있으므로 조건문의 계산 결과는 반드시 bool 이어야 한다.

    [Rustlings] 2. Functions

    함수 선언은 fn 예약어를 통해 선언한다. 함수 이름은 관례로 snake case을 따른다. 함수 선언 위치는 따로 존재하지 않는다. 즉, 함수 선언이 해당 함수 호출보다 뒤에 있어도 에러 없이 작동한다. fn main() { println!("Hello, World!"); } 함수 매개변수에는 반드시 타입을 지정해줘야 한다. fn print_num(num: i32) { println!("number : {}", num); } 함수 반환 타입은 매개변수 뒤에 명시된다. 또한 반환값은 return으로 넘긴 값이나 쓰거나 가장 마지막에 처리된 expression의 결과가 된다. expression은 값을 반환하는 식이다. 5+4 같은 연산식이나 값을 반환하는 함수의 호출이나 코드블럭이 대표적인 express..

    [Rustlings] 1. Variables

    Rust에서 변수는 기본적으로 immutable이다. immutable 변수를 선언하면 반드시 선언과 같이 값을 지정해야 한다. 또한 한번 선언한 변수는 절대로 값을 바꿀 수 없다. 변수의 타입은 타입 추론 덕분에 굳이 지정해줄 필요는 없다. let var1 = 1; let var2: i32 = -342; 값을 바꿀 수 있는 변수를 선언할 수 있다. let 뒤에 mut를 붙이면 해당 변수는 mutable한 변수가 된다. mutable 변수는 선언할 때 같이 값을 지정해주지 않아도 된다. 또한 mutable 변수안에 같은 타입의 다른 값으로 바꿀 수 있다. let mut mut_var; mut_var = 12; mut_var = -24; const 또한 한번 바인딩한 값을 바꿀 수 없는 변수다. 하지만 i..

    [SICP] SICP 독학을 위한 자료

    SICP는 처음에는 Lisp를 공부하다가 알게된 책이지만 지금은 프로그래밍의 기초를 한번 다지고 싶어서 한번 잡아본 책이다. 엄청 어렵다는 말도 있고, 생각보다 얻을게 없다는 사람들도 있지만 그래도 이 책에서 다루는 내용과 공부할 만한 가치가 분명 있다는 후기를 믿고 한번 공부해보기로 했다. 하지만 역시 소문대로 SICP의 내용은 어려웠다. 문제는 몇개를 제외하고는 어느정도 풀 수 있었지만 글의 내용을 이해하는게 가장 힘들었다. 첫 단원부터 설명하는 내용이 잘 이해가 되지 않아 몇번이고 읽어서야 어느정도 이해할 수 있었다. 그래서 몇번이고 포기할까 생각했다. 그러다 우연히 SICP에 관한 자료들을 몇개 발견했다. 프로그램의 구조와 해석 nlp.jbnu.ac.kr 전북대학교 인지컴퓨팅연구실의 한 수업중 하..