0
def sort(someString) do
countSubstring = fn(_, "") -> 0
(str, sub) -> length(String.split(str, sub)) - 1 end
someMap = %{:a => 0, :b => 0, :c => 0, :d => 0}
def loopMap(aMap, n) when n <= 1 do
timesKeyFound = countSubstring(someString, aMap[n])
Map.put_new(aMap, aMap[key], timesKeyFound)
end
def loopMap(aMap, n) do
timesKeyFound = countSubstring(someString, aMap[n])
Map.put_new(aMap, aMap[key], timesKeyFound)
loopMap(aMap, n - 1)
end
loopMap(someMap, 4) #4 is the number of keys in the map
end
我在這裏要做的是將字符串傳入排序模塊。例如讓我們傳遞字符串「你好我的名字是鮑勃」。一旦通過,我創建一個帶有4個鍵的地圖:'a''b''c'和'd'。 然後在我的循環映射代碼中,我試圖通過我的someMap映射和它的鍵(n)的數量作爲參數。然後我在字符串中搜索每個鍵的實例,如果找到了鍵,我爲每個找到的鍵更新地圖1。循環地圖和更新Elixir中的鍵值
我跑我的someMap的loopMap後,我應該有一個更新的地圖是:
%{a: 1, b: 2, c: 0, d: 0}
我到底做錯了什麼?
如果我的映射具有原子不在單個字符如%{:OB => 0,:AME => 0}? – frostmage
對於這種情況,您希望減少映射鍵而不是字符串的字符數,然後使用正則表達式併爲每個鍵獲取該子串的匹配數。 – bitwalker