Lisp 如何计算球拍中的非自然对数?

Lisp 如何计算球拍中的非自然对数?,lisp,scheme,racket,Lisp,Scheme,Racket,我知道racket的log函数,它计算一个数字的自然对数。我试图找到任意基数的数字的对数。换句话说,与此相反: > (log 9) 2.1972245773362196 我想做一些类似的事情: > (logarithm 3 9) 2 有没有人知道内置到球拍的功能,或者我可以在PLaneT的模块中使用这样的功能?使用数学:logk n=ln n/ln k: (/ (log 9) (log 3)) Racket 6.9.0.1增加了第二个任意基数的参数。logkn现在可以写成(lo

我知道racket的
log
函数,它计算一个数字的自然对数。我试图找到任意基数的数字的对数。换句话说,与此相反:

> (log 9)
2.1972245773362196
我想做一些类似的事情:

> (logarithm 3 9)
2
有没有人知道内置到球拍的功能,或者我可以在PLaneT的模块中使用这样的功能?

使用数学:logk n=ln n/ln k:

(/ (log 9) (log 3))

Racket 6.9.0.1增加了第二个任意基数的参数。logkn现在可以写成
(lognk)

根据文档,这相当于
(/(logn)(logk))
,但可能更快


(expt b(*x y))
相当于
(expt(expt b x)y)
。因为对数是指数的倒数,这就解释了为什么这个公式有效。这是35年前我上高中时学的代数,上学期我刚在美国大学教对数。目前,有些人在高中时学习对数,但其他人却没有。事实上,对数是在高中时教给我的——因此,当我还是一名五年级大学生时,我已经完全忘记了这一事实。