リストは順序づけられた要素の並びで、その長さは任意です。リストの要素(引数)は、アトムや複合項、その他のどんな項であってもよく、他のリストも含みます。...
Move to
Next Prev
Up Top
See also
バージョン3から4への移行
イントロダクション
abolish
abort
# append
arg
計算式(arithmetic)
アリティ(arity)
ASCII文字
assert
asserta_term, asserto_term, assertz_term
atom, atomic_length
\(バックスラッシュ)
#bagof, #setof
block, exit_block, cut_block
break
bye
call, execute
文字セット, char_code
#clause, #clause_term
clear_eol, clear_eos, clear_screen
close
コメント
compare
項の比較
値の比較
compiles
concat
連言(conjunction)
consult
コントロールスタック(control stack)
データの型変換(conversion)
copy_term
correct
cpu時間
#current_predicate, #current_atom, current_language
!(カット)
データベース(database)
debug, nodebug, debug_goal
debug_mode
decompcons
指令(directives)
選言(disjunction)
display
編集(edit)
終了(end)
end_of_file文字
equiv_char, image_length, byte_length
例外処理(exceptions)
error_protect, exception, exception_handler
exists
exit
expand_term, phrase(+ゴール,?リスト)
?- export, ?- common, ?- import, ?-hidden
事実(fact)
fail
filepos, files, flush, reset_streams
findall
float_format
# for
functor
gc
get, get0, get_until
getchar
getenv, get_home, get_last, move_cursor
get_global, # global_variable
ゴール(goal)
文法規則(grammar rules)
リストの先頭(head of list)
節のヘッド(head of clause)
help
ifprolog
ifsem
include
index
入力ストリーム(input stream)
インタプリタレベル(interpreter level)
is
length, #reverse
list_mode, listing
リスト(lists)
load, loaded
localtime
ループ(loops)
lower_upper, national_letters
make_atom, make_number
match, # match
# member
modify_mode
?- module, ?- module_body
name
nl
:- nonotify, nonotify
not
number
once
オペレータ(operator)
op, # current_op
outpos, outtab
出力ストリーム(output stream)
program_parameters, system_parameters, user_parameters
parse_atom
parse_position
predicate, predicate_mode
predicate_type
print
手続き(procedure)
program
# prolog_flag
prolog_library
prolog_system, prolog_version, proroot
put
put_byte, get_byte
raise_error
read, read_term
read_error, report_read_error
reconsult(+ファイル名)
# repeat
#retract
retractop
save_system, save_module
see, seeing, seen
set_global
set_home, setoutpos, setupterm
signal, signal_handler, alarm
skip
sort, keysort
spy
dbsize, ssize, gused, dbused, tused, lused
statistics
open, close, stream_control, #current_stream, link_stream
文字列(strings)
複合項(structures)
subatomic
sum, inc
symbol
計算式の構文(syntax of arithmetic expression)
構文チェッカー(syntax checker)
syntax_error
項の構文 (Syntax of terms)
system
system_date, system_time
system_predicate
tab
tell, telling, told
項(term)
X is time
trace, notrace, trace_mode, trace_goal
trace, tracing, traced
トレイル(trail)
true
tty_size
type_of, atom, nonvar, atomic, numeric, digit, realn, integer, struct, letter, var
未定義の述語(undefined_predicate)
?項1 = ?項2, +項1 \= +項2
?複合項 =.. -Univリスト, -複合項 =.. ?Univリスト
unload
unset_global
user
変数(variables)
write
IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog V4.1 レファレンスマニュアル > リスト(lists)

リスト(lists)

MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

リストは順序づけられた要素の並びで、その長さは任意です。リストの要素(引数)は、アトムや複合項、その他のどんな項であってもよく、他のリストも含みます。

リストは空リストか、あるいは関数子がドット'.'で2つの引数、先頭と末尾を持つ複合項です。リストの末尾は、/ClocMel/のリストです。リストの末尾は、通常は空リストによって示され、以下のように'[]'で表します。

    '.'(d,[])

リストに対して通常行なう操作は、それを先頭と末尾に分割することなので、IF/Prologには"先頭としてX、末尾としてYを持つリスト"を表現するための特別な表記法があります。これは[X|Y]と表され、XとYを分けている記号は縦棒です。このパタ−ンでは、以下に示すようにリストの先頭をXの値とし、リストの末尾をYの値とします。

?- [user]. | b([a,b,c]). | b([11]). | b([early, to, bed, and, [early, to, rise]]). | end_of_file. yes ?- b([X|Y]). X = a Y = [b,c] ; X = 11 Y = [ ]; X = early Y = [to, bed, and, [early, to, rise]] yes ?- _

ダブルクオ−ト"..."で囲まれている文字列は、以下のようにASCII文字コ−ドのリストであることを示しています。

?- "abc" == [97,98,99]. yes

以下のようなリストを扱う組み込み述語があります。

#append(?リスト1,?リスト2,?リスト3) リスト3は、リスト1にリスト2をつけ加えたものです。

concat(+コンカットリスト,-アトム) concat(+コンカットリスト,+分離記号,-アトム) 「アトム」は、「コンカットリスト」の要素の結合したもので、concat/3では各要素の間に「分離記号」が入ります。

decompcons(+文字列_式,-文字リスト) 「文字リスト」は、「文字列_式」の文字のリストです。 # member(?要素,?リスト) 要素が「リスト」の「要素」の場合に成功します。 sort(+非順リスト,-順リスト) 項のリストをソ−トします。 reverse(+入力リスト,+出力リスト) 与えられたリストを逆順にします。 length(+リスト,-長さ) リストの長さを計算します。

以下の述語は、ユ−ザによって定義されなければなりません。

perm(?リスト,?置換リスト) リストを置換によって並び換えます。最初の結果は、元のリストになります。それ以後は順に1要素ずつ置換されます。 perm([],[]). perm(L,[H|T]) :- delete(H,L,L1), perm(L1,T).

delete(?要素,?リスト,?新リスト) 「リスト」のひとつの「要素」を削除します。 delete(X,[X|T],T). delete(X,[H|T],[H|T1]) :- delete(X,T,T1).

read on...
IF/Prolog by Siemens
Language
English
Japanese
German
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/reference/lists/home_en.html
published 2008/7/21 update 1995/11/6 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 info@ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS