Files
exercism/elixir/rna-transcription/lib/rna_transcription.ex

20 lines
563 B
Elixir

defmodule RnaTranscription do
# Turns all 1-item charlist keys and values inside the base map into integers
@transcription %{'G' => 'C', 'C' => 'G', 'T' => 'A', 'A' => 'U'}
|> Enum.map(fn {k, v} -> {List.first(k), List.first(v)} end)
|> Enum.into(%{})
@doc """
Transcribes a character list representing DNA nucleotides to RNA
## Examples
iex> RnaTranscription.to_rna('ACTG')
'UGAC'
"""
@spec to_rna([char]) :: [char]
def to_rna(dna) do
dna |> Enum.map(fn x -> Map.get(@transcription, x) end)
end
end