necesito para definir brecha para que [1,2,3,4,5]
lista se divide en:Dividir una lista en la mitad
a = [1,2,3}
b = [4,5]
Recibo un error que dice "Arguments are not sufficiently instantiated"
, y no sé lo suficiente sobre el lenguaje de averiguar cuál es mi problema, o si mi diseño es incluso correcto. Cualquier orientación sería apreciada.
Así que esto es lo que tengo hasta ahora:
append([],L2,L2).
append([H|T],L2,[H|L3]) :- append(T,L2,L3).
lengthIs([],N).
lengthIs([H|T],N) :- lengthIs(T,M), N is M+1.
divide([],[],[]).
divide([H|T],L2,L3) :-
( lengthIs(L2, M) < lengthIs(L1,N)/2
-> divide(T, append(L2, H, X), L3)
; divide(T, L2, append(L3,H,Y))
).
La solución ha marcado como respuesta falla por 'div ([1,2,3,4,5], [1,2,3], [4,5]). ' – false