このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1269438098/543
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  コンソール上でキーボードから次のような標準入力を与えるとする。 
#  10+2 
#  すると、演算結果が出力するようなプログラムを記述せよ。 
#  四則演算( +, -, *, / )に対応させること 
#  
#  言語に備わった解析・計算機能を利用するのではなく、 
#  文字列を解析して式を生成する部分もプログラムとして書くこと。 
#  C言語の以下の関数に相当する関数等は使用して構わない。
#  文字列をコピーする関数( strcpy, strncpy ) 
#  文字列を連結する関数( strcat, strncat ) 
#  文字列の比較を行う関数( strcmp, strncmp ) 
#  文字列の長さを調べる関数( strlen ) 
#  文字を検索する関数( strchr ) 
#  文字列を整数値に変換する関数( atoi )

コンソール上でキーボードから標準入力として得られた文字列を解析して式を生成して評価する(_式,_値) :-
      コンソール上でキーボードから次のような標準入力を得る(_行),
      atom_chars(_行,Chars),
      式(Chars,_式),
      _値 is _式.

コンソール上でキーボードから次のような標準入力を得る(_行) :- get_line(_行).

式(Chars,_項) :-
      append(L0,[_演算子|R],Chars),
      append(_,[_演算子|_],['+','-']),
      _項=..[_演算子,_項1,_項2],
      式(L0,_項1),
      式(R,_項2),!. 
式(Chars,_項) :-
      append(L0,[_演算子|R],Chars),
      append(_,[_演算子|_],['*','/']),
      _項=..[_演算子,_項1,_項2],
      式(L0,_項1),
      式(R,_項2),!. 
式(Chars,_項) :- concat_atom(Chars,_項).