我正在阅读保罗·格雷厄姆的垃圾邮件计划 http://www.paulgraham.com/spam.html想要更好地理解它,但我的 LISP 真的很生疏。他有一段计算概率的代码片段:
(let ((g (* 2 (or (gethash word good) 0)))
(b (or (gethash word bad) 0)))
(unless (< (+ g b) 5)
(max .01
(min .99 (float (/ (min 1 (/ b nbad))
(+ (min 1 (/ g ngood))
(min 1 (/ b nbad)))))))))
我的问题有两个:(1) 是否有网络资源可以将 LISP 转换为其他语言? (我的偏好是基于 C 的语言)或者失败了 (2) 有人可以为我用 C# 重写该代码片段吗?
我认为它是这样的(警告,前面可能出现错误。此代码片段旨在作为指南,而不是解决方案):
var g = 2 * (gethash(word, good) | 0);
var b = gethash(word, bad) | 0;
if( (g + b) >= 5)
{
return Math.Max(
0.01,
Math.Min(0.99,
Math.Min(1, b / nbad) /
(Math.Min(1, g / ngood) + Math.Min(1, b / nbad))));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)