的名單上有兩個列表:執行清單上的功能和列表(二郎)
Category_list = [a, b, c, d]
Id_list = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
對於Category_list每個元素在ID_LIST第一名單我想執行一個函數的每個元素。想象一下,我有這樣的功能:
Check_id(Category, ID)
因此我需要將運行check_id這樣的功能(但很多在現實中更多的ID):
Check_id(a, 1), Check_id(a, 2), Check_id(a, 3), Check_id(a, 4),
Check_id(b, 5), Check_id(b, 6), Check_id(b, 7), Check_id(b, 8),
Check_id(c, 9), Check_id(c, 10), Check_id(c, 11), Check_id(c, 12),
Check_id(d, 13), Check_id(d, 14), Check_id(d, 15), Check_id(d, 16).
在Category_list和元素的量ID_list中元素(列表)的數量將始終相同。我嘗試過使用列表解析以及「列表:foreach」一段時間無濟於事。
你可以通過命名匿名函數和移動內一出來的foreach提高可讀性。好的Erlang代碼最多嵌套兩次。有一次,因爲你在函數內寫入,第二次在接收語句中寫入:)這可能是極端的,但我通常太愚蠢,無法理解更多的嵌套代碼。使用'foldl'非常好,因爲你沒有創建輔助列表。 – tkowal 2014-12-03 14:37:08
嵌套foldl和foreach的可讀性問題來自於我相信的參數序列,這就是爲什麼我爲我們前一段時間討論的函數編寫了這個函數 - 以更自然的方式編寫它並提高可讀性;)我非常喜歡使用閉包。它有助於保持模塊更簡單。 – 2014-12-03 14:46:14