๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
-
[Haskell] 5 - 3. $ (function application)๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 2. 16. 14:23
$ Function Application ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ค์ผ์์ ๊ฐ์ฅ ์ฐ์ ์์(precedence)๊ฐ ๋ฎ์ ํจ์๋ก, ์์ ์ ์ค๋ฅธ์ชฝ์ ํจ์๋ฅผ ๋จผ์ ์คํํ๊ฒ ํด์ค๋ค. ๋ณดํต์ฒ๋ผ, ์คํ์ด์ค ( ' ' )๋ก ๊ตฌ๋ถ๋ ํจ์๋ค๋ก ์ด๋ฃจ์ด์ง ํ๋ก๊ทธ๋จ์ด sqrt 3 + 4 + 9 ์ด๋ ๊ฒ ์์ผ๋ฉด, sqrt 3 ๋จผ์ , ๊ทธ ๋ค์ + 4, ๊ทธ ๋ค์ + 9 ์ด ์์ผ๋ก ์คํ๋๋ค. ์ด๋ฅผ left - association (์ผ์ชฝ ์ฐ๊ด)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฐ๋ฐ, $๊ฐ ๋ถ์ผ๋ฉด ๋ฐ๋๋ก $์ ์ค๋ฅธ์ชฝ ๋ถํฐ ์คํ๋๋ค. ๋ง์ฝ ์์ ํ๋ก๊ทธ๋จ์ด sqrt (3+4+9) ๋ก ์คํ๋์ด์ผ ํ๋ค๋ฉด, $๋ฅผ ์ฌ์ฉํด ์๋์ฒ๋ผ ํํํ ์ ์๋ค. sqrt $ 3 + 4 + 9 ๊ดํธ๋ฅผ ๋์ฒดํด ๊ฐ๋ ์ฑ์ ๋์ฌ์ค๋ค. $ ๊ฐ ๊ดํธ์ ์ ( ' (' )์ด๊ณ , ์๋์ผ๋ก ๋์ ๋ซ๊ธฐ ..
-
[Haskell] #6 syntax-in-functions (1)๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 27. 21:43
์๋ ํ์ธ์. Lemon Kim ์ ๋๋ค ๐ ์ค๋์ ๋๋์ด!! ํจ์์์ pattern matching, guard์ where, let, case๋ฌธ์ ํตํด์ ๋ฐ๋ณต์ ํ๊ฑฐ๋, if-else๋ฌธ์ ๋์นํด์ ํจ์๋ฅผ ์งง๊ฒ ๋ง๋๋ ๋ฒ์ ๋ฐฐ์ธ ์ ์์์ด์. ์ด ๋ค์ ์ฅ์ธ ์ฌ๊ท๋ฅผ ๋ฐฐ์ฐ๊ณ ๋๋ฉด, ๊ทธ๋๋ HackerRank์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ๋ค์ ํธ๋ ๊ฒ์ด ๊ฐ๋ฅํด ์ง ๊ฑฐ์์. ์ด์ ํธ 2020/01/20 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #5 Type (2) ์์ด ์๋ฌธ์ ์ฌ๊ธฐ http://learnyouahaskell.com/syntax-in-functions ๋ชฉ์ฐจ 1. pattern matching Non-Exaustive์ ์์ Factorial ๊ตฌํ์ผ๋ก ์์๋ณด๋ ์ฌ๊ท ๋ฆฌ์คํธ, ํํ๊ณผ ํจํด ๋งค์นญ 2. gua..
-
[Haskell] #5 Type (2)๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 20. 21:45
์ด์ ์ ํฌ๋ Haskell์์์ Type์ด๋, ํจ์ Type ์ ์ธ๊ณผ, ์ ๋ค๋ฆญ ์ฒ๋ผ ํจ์์ ํ๋ผ๋ฏธํฐ์ ๋ค์ํ ํ์ ์ ํ์ฉํ๋ ํ์ ๋ณ์, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ Type๋ค์ ๋ํด์ ๋ค๋ค์ด์. 2020/01/19 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #4 Type (1) ์ค๋์ Type Class์ Haskell์์ ๋ง์ด ์ฐ๋ Type Class๋ฅผ ์ ๋ฆฌํด๋ณด๋ ค ํฉ๋๋ค. GHCi ์์ :t ๋ก ํ์ ์์๋ณด๊ธฐ ํจ์ Type์ ์ ์ธํ๊ธฐ ํ์ ๋ณ์. (ํ์ค์ผ ๊ณ์ ์ ๋ค๋ฆญ ์ฌ์ฉ๋ฒ?) ํ์ค์ผ์ ์ผ๋ฐ์ ์ธ ํ์ ๋ค Type Class ํ์ค์ผ์์ ๋ง์ด ์ฐ๋ Type Class ๋ค ๋ง๋ฌด๋ฆฌ 5. Type Class ํ์ ํด๋์ค๋ ์ด๋ค ๋์์ ์ ์ํ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ๊ฐ์ฒด ์งํฅ์์ ๋งํ๋ Class์๋ ๋ค๋ฆ ๋๋ค. (?? ์..
-
[Haskell] #4 Type (1)๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 19. 21:33
์ด๊ฑด ์ง๋ ํธ 2020/01/12 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #3 Tuple ๋ค์ ํธ 2020/01/20 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #5 Type (2) ๋๋์ด ์๋ฌธ์ ๋์๋ ํ์ค์ผ์ ํน์ง ์ค ํ๋์ธ ๊ฐ๋ ฅํ Type ์์คํ ์ ๋ํด์ ๋ฐฐ์ฐ๊ฒ๋๋ค์! ํ์ค์ผ์ ๋ชจ๋ ๊ฒ๋ค์ Type ์ ๋๋ค. ํ์ค์ผ์ ์ปดํ์ผ ์๊ฐ์ ๋ชจ๋ ํ์ ์ ์์๋ด, ๋ฐํ์ ์๋ฌ๋ฅผ ์ค์ ๋๋ค. ํ์ค์ผ์ ๊ฐ๋ ฅํ ํ์ ์ถ๋ก (Type Inference)๋ฅผ ์ง์ํฉ๋๋ค. ์ด๋ฒ ์ฅ์์ ๋ค๋ฃจ๋ ๋ด์ฉ์ ์๋ ๋ด์ฉ ์ค, 1-4 ๊น์ง ์ ๋๋ค! GHCi ์์ :t ๋ก ํ์ ์์๋ณด๊ธฐ ํจ์ Type์ ์ ์ธํ๊ธฐ ํ์ ๋ณ์. (ํ์ค์ผ ๊ณ์ ์ ๋ค๋ฆญ ์ฌ์ฉ๋ฒ?) ํ์ค์ผ์ ์ผ๋ฐ์ ์ธ ํ์ ๋ค Type Class ํ์ค์ผ์์ ๋ง์ด ์ฐ..
-
[Haskell] #3 Tuple๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 12. 17:47
์๋ ํ์ธ์, Lemon Kim ์ ๋๋ค! ์ค๋์ด 1์ฅ์ ๋ง์ง๋ง์ด์์! ์ผ์.... ๋ฒ์จ๋ถํฐ ํ์์ ์๋ ๊ฐ๋ ์ด ์๊ณ ์์ํ ๊ฐ๋ ์ด ์ถ๊ฐ๋๊ณ ์์ด์ ๋จธ๋ฆฌ์ ๊น์ด ๋๊ณ ์์ต๋๋ค. ์ด์ ํธ (List) 2020/01/12 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #2 List(2) Range, list comprehension ์ค์ตํ๊ธฐ ์ข์ ์จ๋ผ์ธ ์ฌ์ดํธ List https://repl.it/languages/haskell ๊ทธ๋ผ, ๋ฐ๋ก ์์ํ ๊ฒ์ :) Tuple (ํํ)์ List์๋ ๋ค๋ฅด๊ฒ, 1. ์ ํด์ง ๊ธธ์ด์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ 2. ์๋ก ๋ค๋ฅธ ํ์ ๋ ์ ์ฅํ ์ ์๋ ์๋ฃํ์ด์์. ๋ค์ด์๋ ์๋ฃ ๊ฐฏ์์ ๋ฐ๋ผ์ 2๊ฐ๋ ํ์ด(Pair), 3๊ฐ๋ ํธ๋ฆฌํ(Triple) ์ด๋ ๊ฒ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค๋ค์. ํ์ด์..
-
[Haskell] #2 List(2) Range, list comprehension๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 12. 13:23
Haskell์ ๋ฌดํ ๋ฆฌ์คํธ, ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฆฌ์คํธ๋ฅผ ์ฝ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ ์ ๊ณตํฉ๋๋ค. Range์ List Comprehension์ ์์๋ณด์ฃ ! ์ง๋ํธ 2020/01/11 - [๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ] - [Haskell] #1 List (1) ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ๋ค ๊ฐ๋จํ๊ฒ Online IDE๋ก ํ ์คํธํด๋ณด๊ณ ์ถ๋ค! ์๋์ ๋ค์ด๊ฐ์ ์ ์ ๋ ฅํด๋ณด์ ๋ ์ฌ๋ฐ์ต๋๋ค https://repl.it/languages/haskell Range ์ฑ ๋ฒ์ญ์์๋ '๋ฒ์'๋ผ๊ณ ๋ฒ์ญ๋์ด ์์์ง๋ง, ์๋ฌธ์์ ๋์ค๋ range๊ฐ ์กฐ๊ธ ๋ ์ฝ๊ฒ ๋ค๊ฐ์ค๊ธฐ ๋๋ฌธ์ ์ด ์ฉ์ด๋ฅผ ๋์ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค. ์ ์ํ๊ธฐ [์์์์ .. ๋์์] [1..20] [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,..
-
[Haskell] #1 List (1) ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ๋ค๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 11. 23:45
Haskell์์, List(๋ฆฌ์คํธ)๋ ๊ฐ์ ํ์ ์ ์์ ์๋ ์งํฉ์ ๋๋ค. ๋ค๋ฅธ ํ์ ์ ๋ฃ์ผ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฉ๋๋ค. Haskell์์๋ ๋ฌดํ ๋ฆฌ์คํธ๋ ์ ๊ณตํฉ๋๋ค. ๋ค๋ง, Haskell์ Lazy ํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์, ์ ๋ง ํ์ํ ๋ ํ์ํ ๋ถ๋ถ๋ง ์ฐ์ฐํด์ ๋๋ ค์ค๋๋ค. ์ด ๋ถ๋ถ์ Range์์ ๋ค์ ๋ค๋ฃฐ๊ฒ์! ๋ฆฌ์คํธ ์ ์ '[' ']' ๋ก ๊ฐ์ธ๊ณ , ',' ๋ก ๊ฐ ์์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. [] // ๋น ๋ฆฌ์คํธ ์ ๋๋ค. [1,3,4,5] "Hello world" ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] // "Hello world" ์ ๊ฐ์ต๋๋ค. Haskell์์ String์ char์ ๋ฆฌ์คํธ ์ ๋๋ค. //๋ฆฌ์คํธ ๋ด์๋ ๋ ๋ค๋ฅธ ๋ฆฌ์คํธ๊ฐ ๋ค์ด๊ฐ ์ ์์ต..
-
[Haskell] #0 Hello, Haskell!๊ณต๋ถ/ํจ์ํ ํ๋ก๊ทธ๋๋ฐ 2020. 1. 9. 21:28
์๋ ํ์ธ์, ๋ ๋ชฌํด์ ๋๋ค๐ ๋งค์ผ ๊ฐ์ด ๋ง๋งํ ๊ธ๊ฐ์ ์ฐพ์ ํค๋งค๊ณ ์์๋๋ฐ ๋ง์นจ.. ์ ๊ฐ Haskell ์คํฐ๋๋ฅผ ์์ํ๊ฒ ๋์๋ค์? ใ ์ ๋๋ค์! (๋ถ๋ด์ค๋ฝ์ง ์์) ๊ธ๊ฐ์ด ์๊ฒผ์ด! ํน์๋ผ๋ ํ๋ฆฐ ๋ถ๋ถ์ด๋ ์ง๋ฌธ ์ ๋ณดํด์ฃผ์๋ฉด ๋งค์ฐ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :) ๊ต์ฌ๋ก๋ ๊ฐ์ฅ ์ฌ์ด ํ์ค์ผ ์ฑ (์์ด ์๋ฌธ์ ๋ฌด๋ฃ๋ก ๊ณต๊ฐ๋์ด ์์ต๋๋ค http://learnyouahaskell.com/chapters. ์๋ฌธ์ด ๋ ์ฝ๋ค๋ ํ์ด ๋ง๊ธด ํฉ๋๋ค.) ์ปดํ์ผ๋ฌ๋ ์จ๋ผ์ธ IDE https://repl.it/languages/haskell ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ฑ ์์๋ GHCi๋ฅผ ์ง์ ์ค์นํด ์ฌ์ฉํ๋๋ฐ, ์ ๋ ์ค์น์ ์คํจํด์.. ์ฑ๊ณตํ๋ฉด ๋ ์ฌ๋ ค๋๋ฆด๊ฒ์...๐ ๋ช ๋ฒ์ ์ฝ์ง ๋์ ์ฑ๊ณตํ์ต๋๋ค :) ํน์ ๊ถ๊ธํ์ ๋ถ์ ์ฐธ๊ณ ํด์ฃผ์ธ์ 2020/..