我曾经在一个使用 Ubuntu 机器的项目中完美地工作。\n过了一段时间,我决定跳入 Fedora,现在我已经设置了所有内容,我打算继续该项目,但当我运行时,我得到以下信息bundle install:
\xe2\x9e\x9c bundle install\nFollowing files may not be writable, so sudo is needed:\n /usr/bin\n /usr/share/gems\n /usr/share/gems/build_info\n /usr/share/gems/bundler\n /usr/share/gems/cache\n /usr/share/gems/doc\n /usr/share/gems/extensions\n /usr/share/gems/gems\n /usr/share/gems/plugins\n /usr/share/gems/specifications\nFetching gem metadata from https://rubygems.org/..........\nResolving dependencies....\nruby_dep-1.5.0 requires ruby version >= 2.2.5, ~> 2.2, which is incompatible with the current version, ruby 3.0.1p64\nRun Code Online (Sandbox Code Playgroud)\n显然,我的 Ruby 版本要求已得到满足。\n我应该将其降级以便继续吗?\n如果是这样,如何在没有 rvm 或 rbenv 的情况下正确执行此操作?
\n我在 Gemfile.lock 上找到了 2 行,ruby_dep但我不太确定如何继续。第一个结果是嵌套的,另一个结果不是:
listen (3.1.5)\n rb-fsevent (~> 0.9, >= 0.9.4)\n rb-inotify (~> 0.9, >= 0.9.7)\n …Run Code Online (Sandbox Code Playgroud) 我已经开始学习 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
Run Code Online (Sandbox Code Playgroud)