[OCaml] ๊ธฐ๋ณธํƒ€์ž…

[์›๋ณธ ๋งํฌ]

OCaml์˜ ๊ธฐ๋ณธ ํƒ€์ž…์œผ๋กœ๋Š” int, float, bool, char, string, unit์ด ์žˆ๋‹ค.

์•„๋ž˜๋Š” ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ๊ธ์–ด์˜จ ๊ฒƒ์ด๋‹ค.

๋Œ€์ฒด๋กœ๋Š” ํƒ€ ์–ธ์–ด๋“ค๊ณผ ๊ฑฐ์˜ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ int์˜ ๊ฒฝ์šฐ์—” ๋ฒ”์œ„๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค.
๋ณดํ†ต ์ •์ˆ˜์˜ ์‹ค์ œ ๋ฒ”์œ„๋Š” 32๋น„ํŠธ, 64๋น„ํŠธ๋กœ 2์ง„์ˆ˜๊ฐ’์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Ocaml์€ ํŠน์ดํ•˜๊ฒŒ๋„ ๊ฐ€๋น„์ง€์ปฌ๋ ‰์…˜์„ ์œ„ํ•ด 1๋น„ํŠธ๋ฅผ ๋ณ„๋„๋กœ ์ ์œ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ 1๋น„ํŠธ๋งŒํผ ๋ฒ”์œ„๊ฐ€ ๋” ์ž‘์€ ๊ฒƒ์ด๋‹ค.



์ •์ˆ˜

์—ฌํŠผ, int๋Š” ๊ธฐ๋ณธ์ ์ธ ์ž์—ฐ์ˆ˜๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธํƒ€์ž…์ด๋‹ค.
๊ทธ๋ƒฅ ๋Œ€์ถฉ ์ˆซ์ž ๋•Œ๋ ค๋„ฃ์œผ๋ฉด ๋‹ค int๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์น™์—ฐ์‚ฐ(+, - .*, /) ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.



์‹ค์ˆ˜ํƒ€์ž…

float๋Š” ๋ถ€๋™์†Œ์ˆ˜์  ์ƒ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. ์‹ค์ˆ˜๋‹ค.

์ด๊ฒŒ ๋˜ ์œ ์˜ํ•  ์ ์ด ์žˆ๋Š”๋ฐ, float๋Š” int์™€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.
๊ทธ๋ฆฌ๊ณ  float๋Š” ์˜ค๋ฅธ์ชฝ์— .๊ฐ€ ๋ถ™์€ ์ „์šฉ ์—ฐ์‚ฐ์ž๋“ค์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค!



๋ฌธ์ž ํƒ€์ž…

๋ฌธ์ž๋ฅผ ๋‹ค๋ฃจ๋Š” ํƒ€์ž…์€ char์ธ๋ฐ, ํ™‘๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ธ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„๋œ๋‹ค.
8๋น„ํŠธ๋ฌธ์ž๋งŒ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์ •์‹์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค!
ํฐ ๋ฌธ์ œ๋‹ค.



๋ฌธ์ž์—ด ํƒ€์ž…

๊ทธ๋ฆฌ๊ณ  ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ๊ฒŒ ๋ฌธ์ž์—ด์ด ๋œ๋‹ค.
๋ฌธ์ž์—ด์€ ๊ทธ๋ƒฅ ๋ฌธ์ž์˜ ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ, ์ž์‹ ๋งŒ์˜ ๊ณ ์œ ํ•œ ํƒ€์ž…์„ ๊ฐ–๊ณ ์žˆ๋Š” ์นœ๊ตฌ๋ผ๊ณ  ํ•œ๋‹ค.
๋‚˜์ค‘์— ์ž์„ธํžˆ ๋‹ค๋ค„๋ณด๊ฒ ๋‹ค.



๋…ผ๋ฆฌ ํƒ€์ž…

boolean์€ true, false ๊ฐ’๋งŒ์„ ๊ฐ€์ง€๋Š” ๋…ผ๋ฆฌํƒ€์ž…์ด๋‹ค.
๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž &&, ||, not๋งŒ์„ ์ง€์›ํ•œ๋‹ค.



Init ํƒ€์ž…

init ํƒ€์ž…์€ ๋‹จ์œ„๊ฐ’ ()๋งŒ์„ ํ‘œํ˜„ํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.
๋ง ๊ทธ๋Œ€๋กœ ์—†๋Š” ๊ฐ’์„ ํ‘œํ˜„ํ•œ๋‹ค! ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ๋น„๊ตํ•˜์ž๋ฉด void๋‚˜ undefined ๋“ฑ๊ณผ ๋Œ€์‘๋  ๊ฒƒ์ด๋‹ค.
๊ฐ’์„ ๋”ฐ๋กœ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ํ‘œํ˜„์‹์ด๋‚˜ ๊ตฌ๋ฌธ์€ ์ „๋ถ€ ์ด๊ฑธ ๋ฐ˜ํ™˜ํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

์ด ๊ฐ’์€ ํ‘œํ˜„์„ ์œ„ํ•œ ๊ฒƒ์ด์ง€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ง„์งœ ๊ฐ’์€ ์•„๋‹ˆ๋‹ค.



์ฐธ์กฐ
https://ocaml.org/learn/tutorials/basics.ko.html#
https://www2.lib.uchicago.edu/keith/ocaml-class/data.html