:- use_module(library(clpr)). coffee(Temp,AnfangsTemp,RaumTemp,AbkZeitp,_MilchTemp,Zeit) :- { Zeit < AbkZeitp, Temp = (AnfangsTemp - RaumTemp)*exp(2,-0.1*Zeit) + RaumTemp }. coffee(Temp,AnfangsTemp,RaumTemp,AbkZeitp,MilchTemp,Zeit) :- { Zeit >= AbkZeitp, Temp = (StartTemp - RaumTemp)*exp(2,-0.1*RestZeit) + RaumTemp, StartTemp=((AnfangsTemp-RaumTemp)*exp(2,-0.1*AbkZeitp)+MilchTemp)/2, RestZeit = Zeit - AbkZeitp }. % | ?- coffee(T,80,20,0.5,10,1). % T = 33.50194481223154 ? ; % no % % source_info % | ?- coffee(40,80,20,0.5,10,Z). % no % % source_info % | ?- coffee(40,80,20,0.5,25,Z). % Z = 1.5286569440028221 ? ; % no