• 締切済み

prologの引数

現在prologの勉強中で, get_time(T),stamp_date_time(T,D,-32400) とすると現在の時間が T = 1.21414e+009, D = date(2008, 6, 22, 22, 2, 32.734, -32400, -, -). のように表示されます. 出力結果を時間のみ表示させたいのですが,どのようにすればよいでしょうか? 具体的には,表示結果が上記の例だと22時なので 22と表示させたいです. 頻繁にprologの質問をしてしまい恐縮なのですが,どうかご教授ください.

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

そもそもprologについて、どのくらい理解してますか? パタンマッチ(unification)とかバックトラックの概念とか。 ?- get_time(T),stamp_date_time(T,D,-32400). を実行すると、なぜ、 T = 1.21414e+009, D = date(2008, 6, 22, 22, 2, 32.734, -32400, -, -). と表示されるのかお分かりでしょうか? ちょっと、この時間の例は、副作用に近くて、prologの勉強にはあんまり向いてないような気もするので、前の階乗の例のほうがいいと思うのですが、たとえば、fact(3,X). としたときに、何が起こるのかきちんと追ってみるといいです。

関連するQ&A