elm/exercises/rna-transcription/RNATranscription.example
2016-03-14 08:48:57 -04:00

28 lines
592 B
Text

module RNATranscription (toRNA) where
import String
toRNA : String -> Result Char String
toRNA dna =
dna
|> String.toList
|> List.map toRNANucleotide
|> resultExtraCombine
|> Result.map (List.map String.fromChar)
|> Result.map (String.join "")
-- Copied from elm-result-extra
resultExtraCombine : List (Result x a) -> Result x (List a)
resultExtraCombine = List.foldr (Result.map2 (::)) (Ok [])
toRNANucleotide : Char -> Result Char Char
toRNANucleotide nuc =
case nuc of
'C' -> Ok 'G'
'G' -> Ok 'C'
'A' -> Ok 'U'
'T' -> Ok 'A'
_ -> Err nuc