์ ๋์ฝ๋ ๋ฌธ์ ๋ฒ์ฃผ๋ http://www.fileformat.info/info/unicode/category/index.htm ์ ์ฐธ์กฐํ์ญ์์ค.
Haskell์ "GeneralCategory" ์ ํ๊ณผ ์บ๋ฆญํฐ์ "GeneralCategory"๋ฅผ ๊ฒฐ์ ํ๋ ํจ์๋ฅผ ๊ตฌํํฉ๋๋ค.
๊ตฌํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋น์ทํ ์ผ์ ํ๋ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๊ฒ์ ์ ์ํฉ๋๋ค.
Rust์ ๊ทธ๋ฌํ ์ ํ๊ณผ ํจ์๊ฐ ์์ผ๋ฉด "char" ๋ชจ๋์์ ํจ์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค. http://haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-Char.html ์ฐธ์กฐ
libstd์์ 'unicode::'๋ผ๊ณ ํ๋ ์งํ ์ค์ธ ๋ชจ๋์ libicu์ ๋ํ ์ธํฐํ์ด์ค๋ฅผ ์ค์ผ์นํ๋ ค๋ ๊ณณ์ ๋๋ค. ๊ฒฐ์ ์ ์ค์ ๋ก ๋๋ถ๋ถ์ ์บ๋ฆญํฐ ํด๋์ค์ ๋ํด ๊ทธ๋ฆฌ ๊ฐ๋จํ์ง ์์ผ๋ฉฐ ICU๋ ์ด๋ฅผ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ชจ๋ ์ฌ๋์ด libicu์ ๋ํ ์ข ์์ฑ์ ์ฑํํ๋ ๋ฐ ์ฟจํ๋ค๋ฉด core::char ์๋์ ๋ ธ์ถํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
libicu๋ ์ํ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๋ง์ด ์ ๊ณตํ๋ฉฐ ๋๋ถ๋ถ์ ์ปดํจํฐ์ ์์ ๊ฒ์ ๋๋ค(Python์์๋ ์ด๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ฐ๋ฆฌ์๊ฒ ์ ํฉํฉ๋๋ค).
๊ณต๊ฐ libicu ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ๊ฑฐ๋ "char", "str" โโ๋ฑ๊ณผ ๊ฐ์ ๋ชจ๋์์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
์ ๋ ํ์์ ์น์ฐ์น๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
libicu๋ฅผ ์ฌ์ฉํ์ฌ Rust์ "char"์ ์๋ ๊ธฐ๋ฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๋ ค๋ฉด "u_isspace()", "u_isdigit()", "u_forDigit()"(http://icu-project.org/ apiref/icu4c/uchar_8h.html).
์ฐ๋ฆฌ๋ ์์ง ์์ ํ libicu-bindings(๋ง์ ์์ ์ ์๋ฅผ ํฌํจํ์ฌ)๊ฐ ํ์ํ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ฆฌ๋น์ฟ ์ ๊ธธ์ ๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. #1370 ์ฐธ์กฐ
์ด๊ฒ์ ๋ค์ ์ด ์ ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๋ ์ด์ libicu์ ์์กดํ์ง ์์ง๋ง ์บ๋ฆญํฐ์ ๋ฒ์ฃผ๋ฅผ ์ฐพ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ฌ์ ํ โโ์์ต๋๋ค.
๋๋ฌด ์ค๋๋ ์ค๋ ๋์ ๋๊ธ์ ๋ฌ์ ์ฃ์กํฉ๋๋ค. ์ค์ ๋ก UCD(v9.0.0)์ ๋ง์ ๋ถ๋ถ์ ์ฌ๊ธฐ์์ ๊ตฌํํ์ต๋๋ค. libicu๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ์ง ์์ผ๋ฏ๋ก ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ ์ฌ์์ผ ํฉ๋๋ค(ICU๋งํผ ์ ๋ขฐํ ์๋ ์์ง๋ง).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ฌด ์ค๋๋ ์ค๋ ๋์ ๋๊ธ์ ๋ฌ์ ์ฃ์กํฉ๋๋ค. ์ค์ ๋ก UCD(v9.0.0)์ ๋ง์ ๋ถ๋ถ์ ์ฌ๊ธฐ์์ ๊ตฌํํ์ต๋๋ค. libicu๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ์ง ์์ผ๋ฏ๋ก ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ ์ฌ์์ผ ํฉ๋๋ค(ICU๋งํผ ์ ๋ขฐํ ์๋ ์์ง๋ง).