[OCaml] ๋ถ„๊ธฐ

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

Ocaml์˜ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์—๋Š” ๋ถ„๊ธฐ๋ฌธ๊ณผ ํŒจํ„ด๋งค์นญ์ด ์กด์žฌํ•œ๋‹ค.


if-then ๋ฌธ

ocaml์€ ์ „ํ†ต์ ์ธ ํ˜•ํƒœ์˜ ๋ถ„๊ธฐ, if-else๋ฌธ์„ ์ œ๊ณตํ•œ๋‹ค.
if ๋’ค์— ์กฐ๊ฑด์„ ๋ถ™์ด๊ณ , ์ฐธ์ผ ๊ฒฝ์šฐ์˜ ํ–‰๋™์€ then ๋’ค์— ์ž‘์„ฑํ•œ๋‹ค.

์„ ํƒ์ ์œผ๋กœ else๋ฅผ ๋ถ™์ด๋ฉด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ์˜ ํ–‰๋™์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.



ํŒจํ„ด๋งค์นญ match-with๋ฌธ

ocaml๋„ ํ•จ์ˆ˜ํ˜• ์–ธ์–ด๋‹ต๊ฒŒ ํŒจํ„ด๋งค์นญ ๊ตฌ๋ฌธ์„ ์ง€์›ํ•œ๋‹ค.
๋ช…๋ นํ˜• ์–ธ์–ด๋“ค์—์„œ์˜ switch ๋‹ค์ค‘๋ถ„๊ธฐ๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

ํŒจํ„ด -> ํ‘œํ˜„์‹์˜ ๋งค์นญ๋ฌธ์„ |๋กœ ์—ฌ๋Ÿฟ ์—ฐ๊ฒฐํ•ด, ๊ฐ ํŒจํ„ด์— ๋Œ€์‘ํ•˜๋Š” ๋‹ค์ค‘๋ถ„๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

_๋Š” ๋ญ๋“  ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด์ด๋‹ค.

๋˜, ๊ฐ€๋“œ ์ ˆ when์„ ๊ฑธ์–ด์„œ ์ถ”๊ฐ€ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๊ฐ€๋“œ๊ฐ€ ๊ฑธ๋ฆฐ ๊ฒฝ์šฐ์—” ๋™์ผํ•œ ํŒจํ„ด์ด ์ค‘๋ณต๋  ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค.


์ฐธ์กฐ
https://ocaml.org/learn/tutorials/if_statements_loops_and_recursion.html#If-statements-actually-these-are-if-expressions
http://rigaux.org/language-study/syntax-across-languages-per-language/OCaml.html