정오표

『프로그래밍 루아』의 정오표입니다.

오탈자는 http://blog.insightbook.co.kr/notice/10 에서 신고해주세요.

 

348쪽 마지막에 추가 (이효경 님)
  1. 참조 27.3 튜플 구현
    int t_tuple (lua_State *L) {
    int op = luaL_optint(L, 1, 0);
    if (op == 0) {  /* 매개변수가 없나? */
    int i;
    /* 스택에 옳은 업벨류를 각각 밀어 넣는다 */
    for (i = 1; !lua_isnone(L, lua_upvalueindex(i)); i++)
    lua_pushvalue(L, lua_upvalueindex(i));
    return i – 1;  /* 스택에 있는 값의 개수 */
    }
    else {  /* ‘op’ 필드값을 얻는다 */
    luaL_argcheck(L, 0 < op, 1, “index out of range”);
    if (lua_isnone(L, lua_upvalueindex(op)))
    return 0;  /* 필드가 없다 */
    lua_pushvalue(L, lua_upvalueindex(op));
    return 1;
    }
    }int t_new (lua_State *L) {
    lua_pushcclosure(L, t_tuple, lua_gettop(L));
    return 1;
    }

    static const struct luaL_Reg tuplelib [] = {
    {“new”, t_new},
    {NULL, NULL}
    };

    int luaopen_tuple (lua_State *L) {
    luaL_register(L, “tuple”, tuplelib);
    return 1;
    }