我是 Clojure 新手,正在使用 labrepl 做一些基本的工作,现在我想编写一个函数,将某些字母替换为其他字母,例如:eloska → elößkä。
我写的是:
(ns student.dialect (:require [clojure.string :as str]))
(defn germanize
[sentence]
(def german-letters {"a" "ä" "u" "ü" "o" "ö" "ss" "ß"})
(doseq [[original-letter new-letter] german-letters]
(str/replace sentence original-letter new-letter)))
但它并没有像我预期的那样工作。你能帮我一下吗?
最佳答案
这是我的看法,
(def german-letters {"a" "ä" "u" "ü" "o" "ö" "ss" "ß"})
(defn germanize [s]
(reduce (fn[sentence [match replacement]]
(str/replace sentence match replacement)) s german-letters))
(germanize "elosska")
关于clojure - 使用doseq 迭代映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890325/