我只与Prolog合作了几天.我理解一些事情,但这真让我感到困惑.
我想要编写一个带有列表并将其展平的函数.
?- flatten([a,[b,c],[[d],[],[e]]],Xs).
Xs = [a,b,c,d,e]. % expected result
Run Code Online (Sandbox Code Playgroud)
该函数取出列表的内部结构.
这是我到目前为止:
flatten2([],[]).
flatten2([Atom|ListTail],[Atom|RetList]) :-
atom(Atom), flatten2(ListTail,RetList).
flatten2([List|ListTail],RetList) :-
flatten2(List,RetList).
Run Code Online (Sandbox Code Playgroud)
现在,这在我打电话时起作用:
?- flatten2([a,[b,c],[[d],[],[e]]], R).
R = [a,b,c,d,e]. % works as expected!
Run Code Online (Sandbox Code Playgroud)
但是当我打电话来查看我输入的列表是否已经展平时,将返回false
而不是true
:
?- flatten2([a,[b,c],[[d],[],[e]]], [a,b,c,d,e]).
false. % BAD result!
Run Code Online (Sandbox Code Playgroud)
为什么一方面工作,另一方面又不工作?我觉得我错过了很简单的事情.
我试图用这个CSS 制作background-color
一个tr
不透明的:
.faded{
background-color: red;
height: 100px;
opacity: 0.4;
filter: alpha(opacity=50);
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试HTML:
<table>
<tr class="faded">
<td><div>testtesttesttestt</div></td>
<td><div>testtsttesttesttt</div></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
在IE9,10 FF24 Chrome 31+中一切正常,但在IE11中没有. 请记住,我不关心表行的内容,只关心背景不透明度. 屏幕截图和Jsfiddle如下.
IE10:
IE11:
那么,这里发生了什么?
编辑:我已经向微软提交了一份错误报告: https ://connect.microsoft.com/IE/feedback/details/868842/ie-11-setting-css-opacity-on-a-table-row-doesnt-影响最背景颜色的-即行
编辑2:此错误已得到Microsoft的确认
编辑3:Microsoft已将此错误移至新位置: https ://developer.microsoft.com/en-us/microsoft-edge/platform/issues/212446/
我的计算机图形作业是仅使用绘制点的能力来实现OpenGL算法.
所以显然我需要开始drawLine()
工作才能画出其他东西. drawLine()
必须仅使用整数来完成.没有浮点.
这就是我的教导.基本上,线可以分为4个不同的类别,正陡,正浅,负陡和负浅.这是我应该画的图片:
这是我的程序绘制的图片:
颜色是为我们完成的.我们给出了顶点,我们需要使用Bresenham的Line算法根据起点和终点绘制线条.
这是我到目前为止:
int dx = end.x - start.x;
int dy = end.y - start.y;
//initialize varibales
int d;
int dL;
int dU;
if (dy > 0){
if (dy > dx){
//+steep
d = dy - 2*dx;
dL = -2*dx;
dU = 2*dy - 2*dx;
for (int x = start.x, y = start.y; y <= end.y; y++){
Vertex v(x,y);
drawPoint(v);
if (d >= 1){
d += dL;
}else{
x++;
d += dU;
} …
Run Code Online (Sandbox Code Playgroud)