1
我試圖用另一種語言(例如Ruby)重現Erlang phash的確切行爲。有誰知道它的實現細節?Erlang Phash實現
基本上,如果在二郎: erlang:phash(X, n) -> Y
我想在Ruby中是 phash(X,n) = Y
。
我試圖用另一種語言(例如Ruby)重現Erlang phash的確切行爲。有誰知道它的實現細節?Erlang Phash實現
基本上,如果在二郎: erlang:phash(X, n) -> Y
我想在Ruby中是 phash(X,n) = Y
。
要看看它是如何工作的,檢查原代碼:https://github.com/erlang/otp/blob/cbd1378ee1fde835e55614bac9290b281bafe49a/erts/emulator/beam/utils.c#L644
但你不能在另一種語言phash的「精確」的行爲 - 只是因爲你沒有可用有Erlang的數據類型做。 (除非你創建自己的映射當然)
首先,你應該複製`phash2`,除非有特定的要求來匹配`phash`。然而,更大的問題是phash和phash2是專門爲Erlang的類型系統設計的。你是否想要實現一個精確的鏡像,以兩種語言生成相同的散列,或者只是複製基本思想?甚至複製這個想法也是充滿的,因爲Erlang的類型系統基本上是固定的。它沒有關於類,用戶定義類型或信息隱藏的概念。 – 2010-11-27 03:25:00
不幸的是,我沒有太多的選擇,因爲我需要重現ejabberd在負載平衡組件和它使用`phash`時使用的確切模式。 – 2010-11-27 03:27:09