我想知道是否有人可以帮我解决这个问题:我必须使用Prolog与Constraing Logic Programming订购一个列表,我必须以更有效的方式来做.
所以我定义的主要谓词是下一个:
order(Xs,Ys) :-
same_length(Xs,Ys), /* To determine the list Ys with the Xs' length */
perm(Xs,Ys), /* Permutation */
ordered(Ys), /* Is Ys ordered? */
! .
Run Code Online (Sandbox Code Playgroud)
每个先前辅助谓词的实现如下:
same_length(Xs,Ys) :-
length(Xs,L),
length(Ys,L).
perm([],[]).
perm([X|Xs],Ys) :- elem(X,Ys,Ws), perm(Xs,Ws).
ordered([]).
ordered([_]).
ordered([X,Y|Xs]) :- X =< Y, ordered([Y|Xs]).
elem(X,[X|Ys],Ys).
elem(X,[Y|Ws],[Y|Zs]) :- elem(X,Ws,Zs).
Run Code Online (Sandbox Code Playgroud)
我已经证明了我制作的节目并且有效!但我不知道是否有可能提高效率,如果是,我怎么能这样做(我在这里阅读这个旧线程).我应该添加或修改任何约束吗?
谢谢!
我正在尝试使用在线书"学习你的哈斯克尔"学习一些Haskell,我对高阶函数有疑问.
我看了一些例子,我想做一些更高级的功能,但我不知道为什么我总是阅读以下异常:
***例外:euler13.hs:(11,0) - (15,39):函数中的非详尽模式适用
我定义的功能就是这个:
apply :: (Num b, Ord b) => (a -> a) -> b -> [a] -> [a]
apply f n [] = []
apply f n [x]
| n <= 1 = map f [x]
| otherwise = apply f (n-1) (map f [x])
Run Code Online (Sandbox Code Playgroud)
我想将一个名为'f'的具体函数'n'应用于列表'[x]'.我试图使这个函数具有多态性,因此param的类型是'a'.但我也想使用数字和列表,所以我直接使用一个列表(如果我只想使用该函数的数字,那么显然会是[数字])
请问有人帮帮我吗?我喜欢这种语言,但是当你学习它时有点困难,因为它与Java或c有很大不同(例如)
谢谢!
为了提高网站的可维护性,将所有文本与HTML分开并将其全部放在一个独特的CSS样式表中是一个好主意吗?我的意思是,像这样:
HTML文件
<body>
<h1 class="home-title"></h1>
<p class="description"></p>
<!-- and much more elements... -->
</body>
Run Code Online (Sandbox Code Playgroud)
包含所有文本的CSS文件
.home-title:after {
content: "Welcome to my website!";
}
.description:after {
content: "This is a demo ok?";
}
...
Run Code Online (Sandbox Code Playgroud)