Lua Emoji - ๋ฃจ์•„ ์ด๋ชจ์ง€

์†Œ๊ฐœ ๐Ÿต GPT-4o mini์˜ ์„ค๋ช…์„ ์ธ์šฉํ•œ๋‹ค. ์ด๋ชจ์ง€๋Š” ๊ฐ์ •, ์‚ฌ๋ฌผ, ๋™๋ฌผ, ์Œ์‹, ํ™•๋™ ๋“ฑ์„ ํ‘œํ˜„ํ•˜๋Š” ์ž‘์€ ๊ทธ๋ฆผ ๋ฌธ์ž์ด๋‹ค. ์ฃผ๋กœ ๋””์ง€ํ„ธ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋ฉด, ํ…์ŠคํŠธ ๋ฉ”์‹œ์ง€, ์†Œ์…œ ๋ฏธ๋””์–ด, ์ด๋ฉ”์ผ ๋“ฑ์—์„œ ๊ฐ์ •์„ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ๋‚ด์šฉ์„ ๊ฐ•์กฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. 1. ์—ญ์‚ฌ ์ด๋ชจ์ง€๋Š” 1990๋…„๋Œ€ ์ผ๋ณธ์—์„œ ์ฒ˜์Œ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ, โ€œ์ด๋ชจ์ง€"๋ผ๋Š” ์šฉ์–ด๋Š” ์ผ๋ณธ์–ด๋กœ โ€œ๊ทธ๋ฆผ ๋ฌธ์ž"๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 2010๋…„, ์ด๋ชจ์ง€๋Š” Unicode ํ‘œ์ค€์— ํฌํ•จ๋˜์–ด ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. 2. ์ข…๋ฅ˜ ๊ฐ์ • ์ด๋ชจ์ง€: ๐Ÿ˜Š, ๐Ÿ˜‚, ๐Ÿ˜ข ๋“ฑ ๊ฐ์ •์„ ํ‘œํ˜„ํ•˜๋Š” ์ด๋ชจ์ง€. ์‚ฌ๋ฌผ ์ด๋ชจ์ง€: ๐Ÿ“ฑ (ํœด๋Œ€ํฐ), ๐ŸŽ (์‚ฌ๊ณผ) ๋“ฑ ๋ฌผ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ชจ์ง€. ๋™๋ฌผ ์ด๋ชจ์ง€: ๐Ÿถ (๊ฐ•์•„์ง€), ๐Ÿฑ (๊ณ ์–‘์ด) ๋“ฑ ๋™๋ฌผ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ชจ์ง€. ์Œ์‹ ์ด๋ชจ์ง€: ๐Ÿ• (ํ”ผ์ž), ๐Ÿฃ (์ดˆ๋ฐฅ) ๋“ฑ ์Œ์‹์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ชจ์ง€. ํ™œ๋™ ์ด๋ชจ์ง€: โšฝ (์ถ•๊ตฌ๊ณต), ๐ŸŽ‰ (์ถ•ํ•˜) ๋“ฑ ํ™œ๋™์ด๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ด๋ชจ์ง€. 3. ์‚ฌ์šฉ ์ด๋ชจ์ง€๋Š” ๊ฐ์ •์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ํ…์ŠคํŠธ์˜ ์˜๋ฏธ๋ฅผ ๊ฐ•ํ™”ํ•œ๋‹ค. ๋Œ€ํ™”์˜ ๋ถ„์œ„๊ธฐ๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ•˜๊ฑฐ๋‚˜, ์œ ๋จธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋ชจ์ง€๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ๊ธฐ๊ธฐ์—์„œ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‘œ์‹œ๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ๊ฐ ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋””์ž์ธ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. 4. ๋ฌธํ™”์  ์ฐจ์ด ์ด๋ชจ์ง€๋Š” ๋ฌธํ™”์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์ด๋ชจ์ง€๊ฐ€ ํ•œ ๋ฌธํ™”์—์„œ๋Š” ๊ธ์ •์ ์ธ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฌธํ™”์—์„œ๋Š” ๋ถ€์ •์ ์ธ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 5. ์ตœ์‹  ๋™ํ–ฅ ์ด๋ชจ์ง€๋Š” ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ์ด๋ชจ์ง€๊ฐ€ ๋งค๋…„ ์ถ”๊ฐ€๋œ๋‹ค. Unicode Consortium์€ ์ƒˆ๋กœ์šด ์ด๋ชจ์ง€๋ฅผ ์ œ์•ˆํ•˜๊ณ  ์Šน์ธํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋ชจ์ง€๋Š” ํ˜„๋Œ€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์‚ฌ๋žŒ๋“ค ๊ฐ„์˜ ๊ฐ์ •๊ณผ ์ƒ๊ฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋‹ค. ...

2025-06-26 ยท 353 words

Lua - Interactive Mode

2023-08-11: rlwarp + readline์„ ํ™œ์šฉํ•œ ํ‚ค์›Œ๋“œ ์™„์„ฑ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ Intro ์ฝ”๋”ฉ์„ ํ•˜๊ธฐ ์ „ ๋˜๋Š” ๋น ๋ฅธ ํ™•์ธ์„ ์œ„ํ•ด ์ธํ„ฐ์—‘ํ‹ฐ๋ธŒ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋‚˜ ๋ช‡๊ฐ€์ง€ ์‹คํ—˜์„ ํ•ด๋ณด๋Š” ์šฉ๋„๋กœ์„œ ์ข‹๋‹ค. ilua๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด jupyter console, notebook ๋“ฑ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. Execute String $ lua -e 'print("hello world")' hello world Interactive Mode lua -i ๋˜๋Š” luajit -i ๋กœ interactive mode๋กœ ์ง„์ž… -i ์˜ต์…˜์ด ์—†์–ด๋„ ์ง„์ž… ๊ฐ€๋Šฅ local ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์Œ ๋ผ์ธ์—์„œ ์ธ์‹๋˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ $ lua -i -- ๋˜๋Š” luajit -i > local a = 'hello world' -- local ๋ณ€์ˆ˜ ์„ค์ • > print(a) -- print nil -- ๊ฒฐ๊ณผ: nil > a = 'hello world' -- Global ๋ณ€์ˆ˜ ์„ค์ • > print(a) -- print hello world -- ๊ฒฐ๊ณผ: hello world > os.exit() -- ์ข…๋ฃŒ: ๋˜๋Š” Ctrl+d, Ctrl+c Opening Lua File > f = assert(loadfile('foo.lua') -- luaํŒŒ์ผ ๋กœ๋“œ > f() -- ์‹คํ–‰ > dofile('foo.lua') -- ๋กœ๋“œ ๋ฐ ์‹คํ–‰ > m = require('mymodule') -- mymodule.lua ๋ชจ๋“ˆ ๋กœ๋“œ > m.parse() -- ๋ชจ๋“ˆ๋‚ด ํ•จ์ˆ˜ ์‹คํ–‰ Load Libary Example -- file 'lib1.lua' function norm(x,y) local n2 = x^2 + y^2 return math.sqrt(n2) end function twice(x) return 2*x end > dofile('lib1.lua') -- load your library > n = norm(3.4, 1.0) -- using lib1.lua functions > print(twice(n)) -- using twice functions Command Line Arguments (-- /dev/null ์˜ต์…˜ ์ฃผ๋ชฉ) $ lua -i -- /dev/null one two three > print(arg[1]) -- one > print(arg[2]) -- two > print(arg[3]) -- three > print(arg[0]) -- /dev/null Lua, LuaJit line completion like in bash bash์—์„œ line completion๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ rlwrap ํ™œ์šฉ - -a:always-readline,-c:complete-filenames,-e:extra-char-after-completion $ sudo apt install rlwrap $ alias luajit='rlwrap -ac -e "" -pRed luajit' # add this line to ~/.bashrc $ luajit > = 2 + 2 4 > = 2 + 2 --> ํ™”์‚ดํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์œ„ ๋ช…๋ น๋ผ์ธ์„ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. rlwarp์˜ readline์„ ํ™œ์šฉํ•œ ๋ช…๋ น์–ด ์™„์„ฑ: Dictionary ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉ. $ echo "print local assert string ..." > ~/.luadict $ alias luajit='rlwrap -b "" -f $HOME/.luadic -pRed -ca -e "" luajit' $ luajit > ass(-> Press Tab Key anc Check) iLua : with Jupyter Jupyter์˜ ๋ง‰๊ฐ•ํ•œ ์ง€์›์•„๋ž˜ ์ฝ˜์†”ํ˜• ์ธํ„ฐ์—‘ํ‹ฐ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ์™„์„ฑ ๋ฐ vi edit mode ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ์ถœ๋ ฅ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌผ๋ก  ํŠน์„ฑ์ƒ local ๋ณ€์ˆ˜๋Š” ์—ญ์‹œ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ๊ทธ๋ ‡๋‹ค. ~/.local ์ดํ•˜์— jupyter ๋ฐ ilua๊ฐ€ ์„ค์น˜๋œ๋‹ค. ์•„๋ž˜์ฒ˜๋Ÿผ vi edit mode๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•˜๋‹ค. $ pip install ilua $ echo "c.ZMQTerminalInteractiveShell.editing_mode='vi'" > ~/.jupyter/jupyter_console_config.py $ jupyter console -h # help $ jupyter kernelspec list # ๋‚ด์žฅ ์ปค๋„ ์ŠคํŽ™ ํ™•์ธ $ ~/.local/bin/ilua -i lua[jit] # ์‹คํ–‰ $ echo "alias ilua='ilua -i luajit'" >> ~/.bashrc # luajit ์ „์šฉ alias $ source ~/.bashrc $ ilua Links https://www.lua.org/pil/1.1.html https://www.tutorialspoint.com/command-line-arguments-in-lua https://lua-users.org/wiki/InteractiveLua https://github.com/guysv/ilua https://jupyter-console.readthedocs.io/en/latest/config_options.html

2022-09-22 ยท (updated 2023-08-11) ยท 422 words