Ruby for Impatient Nuby

Tags:

본 글은 http://docs.google.com/View?docid=ajb44wcvmjj8_2fg33f2로 이전되었습니다.

Comments

11 responses to “Ruby for Impatient Nuby”

  1. [DRAFT!!] 갑자기 한 결심으로 인해, 앞으로 4번에 걸쳐 루비언어에 대한 개론을 소개하려고 합니다. 순서는 1) 루비의 기본 문법, 2) 함수 및 반복문들, 3) 루비의 메타 프로그래밍, 4) Rails 입니다. 이 글을 읽기 위해서는 먼저 임의의 언어에 능숙해야합니다. 뭐가 됐든 상관은 없겠지만, 어쨌든 루비 프로그래머들은 늘

  2. 공성식 Avatar
    공성식

    아주 정리를 잘 하셨네요.
    한글로 된 루비 설명서가 흔치 않은데 이걸 보면 좋을 것 같네요.

    한 가지 잘못된 점이 있어서 지적합니다.

    ———–
    다만 성능을 위해 실수나 정수같은 값들은 a라는 변수가 1이라는 인스턴스를 참조하는게 아니라, a라는 변수 자체에 값을 담고 있습니다.
    ———–

    정수 중에서 Fixnum은 물론 말씀하신 대로 reference가 아닌 value를 변수에 바로 담습니다만 실수는 reference 타입입니다.
    루비에서 변수는 4바이트로 잡히기 때문에 실수형을 4바이트에 넣을 수가 없거든요.

    Value 타입은 다음과 같습니다.
    TrueClass
    FalseClass
    NilClass
    Fixnum

  3. 홍민희 Avatar

    사실 if 1 + 1 == 2; puts "yes" else puts "oops?" endputs (if 1 + 1 == 2 then "yes" else "oops?" end)로 줄일 수도 있겠죠. ㅎ 모든 것이 표현식이라서 루비에게 내려진 축복입니다. if문도 표현식이라니. ㅎㅎ

  4. MKSeo Avatar
    MKSeo

    @공성식: 호오… 대단하세요. 어떻게 그걸 아시는거죠?????? -_-;;;;;;;;
    @ 홍민희: 오.. 감사합니다. if 문을 한줄로 쓰는것만 생각해서 그건 미처 생각하지 못했어요.

  5. abraxsus Avatar

    뭐 딴지 걸려는건 아니구요.. 제가 루비를 모르니까…
    그냥 보면서 C가 떠올라서리…-_-;;;

    printf((1+1==2)?”Yes”:”No”);

  6. MKSeo Avatar
    MKSeo

    @abraxsus: 넣었슴다 ㅎㅎ

  7. abraxsus Avatar

    뭐 몇가지 딴지를 걸자면-_-;;

    1) range소개도 한줄정도… range잼있던데. (1.2)..(3.4)뭐 이런 float의 range도 먹히던데
    물론 iteration은 안되더만..어따가 써먹지??
    2) d.class하니 array로 나오는데..이 글의 리스트는 array를 뜻하지? 용어의 통일이 어때..

    3) 버그!! 1..2는 1번째 원소부터 2번째 원소까지를 의미합니다. 가 아니라, 2번째부터 3번째 원소까지겠지
    4) |i| 에 대해서좀 설명. 걍 guessing해서 쓰고는 있지만 저 파이프 기호는 나같은 초보한테 넘 생소한걸
    혹시 block에 넘기는 argument인가? 여러개 넘길땐? 항상 { 다음에만 올수 있는거야? 즉 블락 앞에?

    5)
    irb(main):189:0> e.each{ |i| puts 3}
    3
    3
    => {1=>”a”, 2=>”b”}
    irb(main):190:0> e.each{ |i| puts i}
    1
    a
    2
    b
    => {1=>”a”, 2=>”b”}

    이건 왜이래.. each로 2번 도는데 왜 밑에서는 네개가 출력되지.. puts i 가 두줄씩 찍었나봐..
    보니까 i.class가 array던데 e[1]이 string인걸로 기대했었는데,? 해시의 each는 어레이를 돌려주나부지..
    걍 해보면서 찾아낸거야..

    6) range의 to_a는 obsolete이라는데. 딴걸로 대체하는게 어때

    7)
    글구 BigNum의 정확성은 혹시 arbitrary precision이냐? 즉 아무리 큰 정수라도 다룰수 있는건가??
    아님 한계가 있어? 궁금. 내가 그쪽에 관심이 있어서..

    이상, 반영하시려면 하시고 아니면 말고, ㅋㅋ.. 문서 관리자 마음!
    이것저것 다 반영하다보면 초보를 위한 짧은 문서가 어느새 detail해져버리는 것도 좋다고만 할수 없지.

    p.s. 이런 코멘트는 읽어본후에 지워버려도 좋다. 다른 사람들이 이런 내용을 다
    읽게하는것도 난 안좋아하는뎅 ^^;; 그 사람들이 지치잖아..

  8. MKSeo Avatar
    MKSeo

    @abraxsus: 음.. 오류가 많군;;;;; 언제 다 고치지;;;;; 글구 BigNum은 임의 크기의 수라도 다룰 수 있을거야. 자바에도 BigDecimal 있자나, 자바 소스 보는게 가장 쉽지 않을까 추측.

  9. 정목 Avatar

    p는 puts 다른 명령어입니다. p는 p ob 라고 쓸 경우 puts ob.inspect와 동일한 결과를 얻을 수 있습니다. 단순 문자열의 경우 차이가 없겠지만, 배열이나 클래스 인스턴스를 넣을 경우 다른 결과를 보실 수 있습니다.

  10. MKSeo Avatar
    MKSeo

    네.. inspect더군요. 요즘은 덕분에 p를 잘~ 쓰고 있는..
    예전에는 매번 puts obj.inspect 라고 하고 살았다죠 하하;;;;;

  11. 루비가 쿨한 이유 1 – irb

    루비는 스크립트 언어이다. 스크립트 언어에는 인터랙티브 인터프리터가 같이 제공되는 경우가 많은데 알고 보면 ..

Leave a Reply

Your email address will not be published. Required fields are marked *