引数無く日報が呼ばれたときは昨日の日報を出力する。
という仕様から、
日報 :- 昨日(_昨日),日報(_昨日).

を生成する。ということは、「引数無く」の意味理解や、
「が」「呼ばれた」「とき」「は」「の」「を」「出力」「する」などを
捨象しなくてはならない。Prologの手入れはこのレベル。
nippo() {
date(&date);
nippo(date);
}
のようなコードはもう一段手入れが入っていて一枚仕様書が増えます。
ム板にこういう部分の話をするスレはあまりありませんが、
言語比較評価をするならこの部分も含める必要があります。