ADP
Programming Language ADP

Japanese

Sourceforge.net

SourceForge.JP

Loading

mkmap (配列とキーから連想配列を作成する)

形式
 mkmap( $values, $keys, $dst)
引数
  • $values: 値の配列
  • $keys: キー配列
  • $dst: 連想配列
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明

単純な値の配列からキーを与えて連想配列を作成します。
値の配列、キーの配列の先頭要素からそれぞれ連想配列が作成されます。
つまり、
{ $keys[0] => $values[0], $keys[1] => $values[1], .... }
と同様の変換を行います(但し連想配列の作成ではキー部分を変数にすることは出来ませんので上記コードはコンパイルできません)。

キーの配列の要素数の方が少ない場合は、キーの配列の要素数だけ連想配列が作成されます。
値の配列の要素数より、キーの配列の要素数が多い場合エラーとなります(実行例を参照のこと)。

コード例 (lib/mkmap.p)
,$a = { 'a', 'b', 'c', 'd' }, $r == $a.mkmap({ 'A', 'B', 'C', 'D' }), prtn($r);
,$a = { 'a', 'b', 'c', 'd' }, $r == $a.mkmap({ 'B', 'C', 'D' }), prtn($r);
,$a = { 'a', 'b', 'c' }, $r == $a.mkmap({ 'A', 'B', 'C', 'D' }), prtn($r);
 

実行例
D:\sample\lib>adp mkmap.p
{A => a, B => b, C => c, D => d}
{B => a, C => b, D => c}
RuntimeError:argment type error (1)  At mkmap($a,{"A","B","C","D"},$r)


Powered by ADP.