하스켈 입문 :하스켈 | Chars와 Int를 문자열로 바꾸는 문제.
안녕하세요. 내가 뭘하려고 오전
는
변경합니다 (맵 ORD와) (이 경우 X mod
3 == 0) 뭔가를 충족 몇 가지 숫자를 문자열 걸릴 [지능]에에를 켭니다.
이후 변경되지 않은 숫자를 다시 char로 변경하고 숫자를 여전히 숫자로 변경하고 싶습니다.
*Main> fromStringToList "hihello"
[104,105,104,101,108,108,111]
*Main> changeB3 [104,105,104,101,108,108,111]
"'h'210'h''e'216216222"
내가 원하는 것은 :
이
내 문제입니다 .. 다시 문자열로이 결합"h210he216216222"
내가 쇼를 사용하여 얻을 수 매핑하는 방법을 알아내는 붙어 Char에서 '_'없이 작동합니다. 감사.
내 코드 :
import Data.Char
fromStringToList :: String -> [Int]
fromStringToList "" = []
fromStringToList myString = map ord myString
{-
changeB3
PRE: True
POST: every Int that can be divided by 3 is multiplied by 2 and
kept as int, otherwise transformed to char
-}
changeB3 :: [Int] -> String
changeB3 [] = ""
changeB3 (x:xs)
| x `mod ` 3 == 0 = show map (x * 2) ++ changeB3 xs
|otherwise = map chr x ++ changeB3 xs
정말 고마워요! 네 ..지도와 혼동스러워졌고 재귀는 두 가지 이전 기능에서 그들을 결합하려고했습니다. 두 사람의 원리를 완전히 이해하지 못한 것에 도달했습니다 ... 큰 감사드립니다! 아주 잘 설명했다! –