~cpp roots a b c = let det = sqrt(b*b - 4*a*c) twice_a = 2 * a in ((-b+det)/twice_a, (-b+det)/twice_a) minint val = let rnd = round (fst (roots 1.0 1.0 (-2*val) ) ) in (rnd, toRational (rnd*(rnd+1))/2)
1~N 까지 합 구하는 부분�
~cpp mysum 1 = 1 mysum n = n + mysum (n-1)
로 ì •ì�˜í–ˆë‹¤ê°€ ì�´ì „ì—� 작성했ë�˜ë�°ë¡œ gauss ì�˜ 방법ì�„ ì�´ìš©í•˜ì—¬,
~cpp mysum n = n * (n+1) / 2로 바꾸었ë�”니 type errorê°€ 났다. ì�´ìœ ì�¸ì¦‰,
~cpp rnd = round (fst (roots 1.0 1.0 (-2*val) ) )ì—�서 rndì�˜ 타입ì�´ Integer로 ë�˜ì—ˆëŠ”ë�° Integer는 다른 값으로 ë‚˜ëˆ ì§€ì§€ 않았다(ë‚´ê°€ 방법ì�„ ëª¨ë¥´ê³ ìžˆì�„수ë�„ ìžˆê² ì§€ë§Œ). haskell wiki를 ë’¤ì ¸ toRational ì�´ë�¼ëŠ” 함수를 찾았지만 ì¶œë ¥ë�˜ëŠ” 모양ì�´ ì˜� 마ì�Œì—� 들지 않는다.
HaskellLanguage ì—�서는 다른 언어와 달리 형 변환ì�´ 잘 안ë�œë‹¤. 왜 ì�´ë ‡ê²Œ 만들어놓았ì�„까?










