【发布时间】:2021-07-14 15:31:10
【问题描述】:
我已经开始研究 Elixir,但我正在努力实现从 OOP 的功能范式转变。
所以我正在做的练习要求我返回正确的字符串格式,将 DNA 转换为 RNA。
例如:RnaTranscription.to_rna('ACTG') 应该返回 'UGAC'。
这是我目前所拥有的,但我不知道如何进行。 我应该如何获取每个元素并替换它们? 我考虑过对每一个都使用 String.replace(dna, "A", "U") 但它不是 DRY。
defmodule RnaTranscription do
def to_rna(dna) do
map = %{"A" => "U", "C" => "G", "T" => "A", "G" => "C"}
dna
|> String.split("")
|> Enum.map(dna, substitute(dna, x))
end
def substitute(x), do: x -> [ map[x] | substitute(tails) ]
end
【问题讨论】:
-
'ACTG'是一个列表,而不是一个二进制字符串。
标签: loops dictionary foreach elixir phoenix