你在OCaml中用什么跟踪和调试?
为了调试我尝试了ocamldebug和Emacs插件.
对于跟踪,我希望能够打印每个变量的数据构造函数.使用Camlp4的示例如下所示:http://caml.inria.fr/pub/docs/tutorial-camlp4/tutorial007.html#toc52
type colour = Red | Green | Blue
let print_colour =
function
Red -> print_string "Red"
| Green -> print_string "Green"
| Blue -> print_string "Blue"
Run Code Online (Sandbox Code Playgroud) 我偶然发现了维基百科上的以下示例(http://en.wikipedia.org/wiki/Type_conversion#Implicit_type_conversion).
#include <stdio.h>
int main()
{
int i_value = 16777217;
float f_value = 16777217.0;
printf("The integer is: %i\n", i_value); // 16777217
printf("The float is: %f\n", f_value); // 16777216.000000
printf("Their equality: %i\n", i_value == f_value); // result is 0
}
Run Code Online (Sandbox Code Playgroud)
他们的解释是:"这种奇怪的行为是由于i_value与f_value进行比较时隐式转换为浮动;一个失去精度的转换,使得比较的值不同."
这不对吗?如果i_value被转换为浮动,那么两者都会有相同的精度损失并且它们是相等的.所以i_value必须加倍.
如何在PrimeFaces中的分页DataTable中过滤后得到结果数?
<p:dataTable id="tbl" var="x" value="#{dbBean.xSorted}" paginator="true" rows="20">
<p:column sortBy="#{x.id}" filterBy="#{x.id}" filterMatchMode="exact">
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{x.id}" />
</p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
该表有~20列,可以进行排序和过滤.
<h:form prependId="false" id="parentForm">
...
<h:form prependId="false" id="commentForm">
...
add comment
</h:form>
save
</h:form>
Run Code Online (Sandbox Code Playgroud)
不起作用......
如果没有内部形式,当我只想添加注释时,父元素会被验证.
"添加评论"应该只是验证评论,当点击"保存"时,应该验证父级.