一位朋友声称Common Lisp具有任何语言中最快的Perl兼容正则表达式库,包括Perl本身,因为使用优化的JIT编译器(如SBCL),CL-PPCRE可以将每个特定的正则表达式编译为本机程序集,而其他实现包括Perl的,必须生成字节码并解释它.在实践中,特别是对于我们尝试将相同的正则表达式与许多输入或长输入匹配的常见情况,编译开销不仅仅是合理的.
不幸的是,我找不到任何关于此的基准,而且我不知道自己运行,所以我转向蜂巢头脑.有人可以评估这个说法吗?
在没有花费精力实际克隆JUnit之类的东西的情况下,我正在抛出一些实用程序函数来帮助测试一些SML代码.我确实知道QCheck,但它也不能做到这一点,也不是我想要的.(但是如果您知道另一个SML自动测试框架,请说出来.)
我希望能够断言某些函数会抛出异常,例如,给定一个函数
fun broken x = raise Fail
Run Code Online (Sandbox Code Playgroud)
我希望能够写出类似的东西
throws ("ERROR: function is not broken enough!", fn () => broken 1, Fail)
Run Code Online (Sandbox Code Playgroud)
如果给定的函数没有引发预期的异常,则抛出错误.
我试着throws用这样的类型写一个函数(string * exn * (unit -> unit)) -> unit:
fun throws (msg, e, func) = func ()
handle e' => if e = e'
then ()
else raise ERROR (SOME msg)
Run Code Online (Sandbox Code Playgroud)
但这会产生一堆编译时错误,显然是因为ML没有定义异常上的相等性:
sexp-tests.sml:54.31-57.49 Error: types of rules don't agree [equality type required]
earlier rule(s): ''Z -> unit
this rule: exn -> …Run Code Online (Sandbox Code Playgroud) 我需要调整内部打印系统的Web界面,但是自从我触及HTML以来它已经持续了十年.任何人都可以推荐一些关于编写HTML表单并在PHP中处理它们的教程吗?谷歌只为我提供了八年历史的资源,其中包含大型"仅用于历史目的"的横幅,可能是因为我的所有词汇都是八年之久.
php.net上的文档很好,但我正在寻找更大的例子来展示所有部分是如何组合在一起的,最好是用解释来解释程序员的想法.我可以像下一个人一样查找函数API.
编辑:具体询问PHP和HTML表单.对不起,如果标题是误导性的 - 我只是想举几个我不知道的事情的例子.
从概念上讲,我需要巧合地将每个事件的概率相乘.由于可能涉及很多事件,我让计算机添加对数以避免下溢.
但突然之间我无法说服自己在开始添加之前将返回值初始化为零.我知道零是加法的标识元素,我记得这就是我的方法,但是,看一下对数图,我可以清楚地看到零的反对数是负无穷大.
因此,将返回值初始化为零应相当于将所有概率乘以负无穷大,这绝对不正确.我究竟做错了什么?
OCaml有时会发出警告"这种地面胁迫不是主要的".我想我理解"非主要"部分(类型推断至少给出了两种可能的类型,两者都不是另一种的子类型),但我不知道"地面强制"是什么.
我怀疑答案必须涉及一些抽象类型理论,但我也非常欣赏具体的例子.