这是我已经制作的代码,它应该将列表分成三个其他列表,在第一个列表中应该有负数,在第二个列表中偶数,在第三个列表中为奇数。 / p>
functie([],_,_,_).
functie([H|T],Neg,Odd,Even):-
((H<0) , append(Neg,[H],Neg1) , functie(T,Neg1,Odd,Even)) ;
(((H rem 2)=:=1), append(Odd,[H],Odd1) , functie(T,Neg,Odd1,Even)) ;
(((H rem 2)=:=0), append(Even,[H],Even1) , functie(T,Neg,Odd,Even1)).
答案 0 :(得分:1)
假设奇数和偶数列表仅用于非负数,则可以使用四子句谓词进行拆分。 base子句应该处理一个空列表,提供空结果。其余三个条款应该处理三个条件 - 即头部为负时,头部为奇数,头部为偶数时。
结果很简单:这三个条款具有相同的结构;它们唯一的区别是递归调用之前的条件,以及头部元素添加到标题中的列表。
ffmpeg -i http://.../playlist.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
请注意,此实现不使用任何Prolog的库谓词。一切都是通过统一来完成的。
答案 1 :(得分:0)
要学习,最好从头开始实施,但实际上,有一些库可以处理大多数常见任务
functie(L,N,O,E) :-
partition(>=(0),L,T,N),
partition(odd,T,O,E).
odd(N) :- 1 =:= N mod 2.