repeat の定義は以下の通り単純である。repeat.repeat :- repeat.repeat 自体は究極の再帰プログラミングである。問題はこれをどのように使用するかで、?- repeat,read(X),write(X),nl,X=end_of_file.|: abc.abc|: 123.123|: end_of_file.end_of_fileX = end_of_filerepeat は再帰述語ではあるが、失敗駆動の起点としてのみ利用される。repeatに制御が返ってくるのは、後続する副目標が完全に失敗したときである。repeatまで制御は戻り、再び後続する副目標が実行される。まったく最初と同じ状態に戻って実行される。ということは、本来述語定義や定義された節の引数は実行中に書き換えないことが基本なので、後続の副目標を何度繰り返しても同じ結果となり、停止しないはずである。したがってrepeatを含む節がプログラマの期待通り停止するためには、その後続の副目標の実行に副作用があることが前提となる。この副作用による変化を読み取ってrepeatの節を停止するように工夫する。上記の場合、X = end_of_file.がそれである。次に、四季 という検索述語を repeat の前に置いてみる。四季(春).四季(夏).四季(秋).四季(冬).?- 四季(_季節),repeat,read(X),write(X),nl,X=end_of_file.|: abc.abc|: 123.123|: end_of_file.end_of_file_季節 = 春,X = end_of_file,季節 の選択が春から先に進んでいない。副目標 四季 には repeat があるためバックトラックしてこないことになる。
above(X,Y) :-        on(X,Y).above(X,Y) :-        on(X,Z),        above(Z,Y).ここで on の定義は具体的に定義する。例えば、on(波平,サザエ).on(サザエ,カツオ).実行例?- above(波平,X).X = サザエ;X = カツオ;False?= above(波平,カツオ).True一つ以上離れた関係を above の第二節でので定義で、引数の変数を on を経ながら X - Z - Y と連鎖することによって表現している。経路が以下のような定義の時、ある駅から別の駅に到達できるかを示す 到達可能性 の定義は。経路(渋谷,神泉).経路(神泉,駒場東大前).経路(駒場東大前,池の上).経路(池の上,下北沢).到達可能性(_駅_1,_駅_2) :-        経路(_駅_1,_駅_2).到達可能性(_駅_1,_駅_2) :-        経路(_駅_1,_駅_3),        到達可能性(_駅_3,_駅_2).実行例?- 到達可能性(神泉,下北沢).true.検索は、(神泉,駒場東大前) → (駒場東大前,池の上) → (池の上,下北沢) と進み、第一節の本体で :- 経路(池の上,下北沢). が真となることにより、到達可能性は真となる。この定義を見比べると、経路/到達可能性とon/aboveさらに、既に例として見てきた親子/孫(あるいは先祖)の関係が同じアルゴリズムであることがわかる。
"文字列" という文字列を反転して "列字文" という文字列を生成する 文字列の反転/2 を定義する。組込述語 atom_chars と上記定義した リストの反転 を組み合わせる。文字列の反転(_文字列,_反転した文字列) :-        atom_chars(_文字列,_文字のリスト),        リストの反転(_文字のリスト,_反転した文字のリスト),        atom_chars(_反転した文字列,_反転した文字のリスト),ここでは一旦文字のリストに変換している。それによってリストの反転/2が利用できた。ただし、元の文字列の形式に atom_chars をもう一度使って戻さなくてはならない。atom_chars でリストに変換せずに、文字列の反転/2を定義できるが、以下のような難しい定義となる。文字列の反転(_文字列,_反転した文字列) :-        文字列の反転(0,_文字列,_反転した文字列).文字列の反転(N文字目,_文字列,_文字) :-        sub_atom(_文字列,N文字目,1,0,_文字).文字列の反転(N文字目,_文字列,_副文字列) :-        sub_atom(_文字列,N文字目,1,_,_反転した文字列),        N_1文字目 is N文字目 - 1,        文字列の反転(N_1文字目,_文字列,_反転した文字列_1),        atom_concat(_反転した文字列_1,_文字,_反転した文字列).組込述語 atom_concat が使われた。アトムとアトムを結合して別の長いアトムを生成する述語である。文字列の反転の例を示す。?- 文字列の反転(文字列,X).X = 列字文?-
マスメディアの収入源には大きく分けて、情報の発信側から受け取る広告料と、受け手に課金する料金（受信料、購読料など）、そして事業収入などのその他収入がある。この収入の割合はメディアによって異なり、たとえば日本においては新聞社は平均で販売収入が52.7%、広告収入が30.8%（2006年）となっており、どちらからも収入があるが販売収入の方がやや主となっている。これに対し、ヨーロッパやアメリカの新聞社の収入の8割は広告からのものとなっており、広告に依存する収入体系となっている。新聞と異なり、放送は課金手段が様々ある。民間放送にも広告料での運営と受信料での運営の2形態があり、公共放送はBBCやNHKのように受信料のみで運営する局のほか、広告料と受信料の両方受け取る局、政府交付金を受ける局など、国によって収入源が異なる（公共放送の項参照）。衛星放送や有線放送の場合、ペイ・パー・ビュー方式などで視聴者に課金する局もある。ネットの発達と利用者の増加で、既存メディアは広告や情報の受信手段としての役割をネットと競合するようになり、全体的なメディアの傾向として、収入は頭打ちか減少傾向にある。アメリカの新聞社では減少傾向が顕著で、ニューヨーク・タイムズは巨額の赤字を出し、本社社屋の売却などのリストラを進めているほか、2009年には、クリスチャン・サイエンス・モニター、シアトル・ポスト・インテリジェンサー、ロッキーマウンテン・ニュースが経営難で日刊紙の発行を取りやめた。メディア産業は、出版がやや小規模の資本でも行えることを除けばいずれも巨大な資本を必要とするため、企業の大規模化が進んでいる。さらに大規模化した企業は同業他社の買収や系列化、他メディアへの進出、さらにはコンテンツ産業であるプロ野球（球団）やサッカー、所有不動産の賃貸、まったくの別分野である旅行代理店やホテルなどへの多角化を行い、巨大なメディア・コングロマリットを形成しているところも多い。