例: リストを処理する

  1. 添字。@DbName は、要素 1 が現在のデータベースのサーバー名、要素 2 がファイル名であるリストを返します。次の例は、ファイル名を取得します。
    @Prompt([Ok]; "Database name";
    {"} + @DbName[2] + {"})
  2. 並列演算。次の例は、2 つの数値リストを並列演算で加算します。結果のリストには 11、22、27、44 という 4 つの値が入ります。
    list1 := 10 : 20 : 30 : 40;
    list2 := 1 : 2 : (-3) : 4;
    list3 := list1 + list2;
    result := @Text(list1) + " + " + @Text(list2) + " = " + @Text(list3);
    @Prompt([OkCancelList]; "Result"; ""; ""; result)
  3. 順列演算。次の例は、2 つのリストを順列操作で連結します。結果のリストには、Blue Sedan、Blue Coupe、Blue Van、Blue Truck、Red Sedan から Yellow Truck までの 12 個の値が入ります。
    cars := "Sedan" : "Coupe" : "Van" : "Truck";
    colors := "Blue" : "Red" : "Yellow";
    result := colors + " " *+ cars;
    @Prompt([OkCancelList]; "Result"; ""; ""; result)
  4. @Elements。次の例は、[Categories] フィールドに要素がなければメッセージを表示し、要素があればリストを表示します。
    @If(@Elements(Categories) = 0; @Prompt([Ok]; "Categories"; "No categories");
    @Prompt([OkCancelList]; "Categories"; ""; ""; Categories))
  5. @Explode。次の例は、デフォルトの分離記号である空白、カンマ、セミコロンを使用して文字列を区切り、文字列定数をリストに収めます。結果のリストには、Paris、London、Chicago、Seoul の値が入ります。
    cityList := @Explode("Paris London,Chicago;Seoul");
    @Prompt([OkCancelList]; "List of cities"; ""; ""; cityList)
  6. @Explode。次の例は、カンマ、セミコロンの分離記号を使用して文字列定数を区切り、文字列定数をリストに収めます。結果のリストには、Paris、London、New York、Washington DC の値が入ります。空白は分離記号に指定されてないため、New York と Washington DC は「New」、「York」、「Washington」、「DC」のようには区切られません。
    cityList := @Explode("Paris,London,New York;Washington DC"; ",;");
    @Prompt([OkCancelList]; "List of cities"; ""; ""; cityList)
  7. @Explode。次の例は、London と New York の間に空白のエントリを挿入します。3 番目のパラメータが @False になっているか省略されていると、連続する複数の分離記号は 1 つと見なされます。カンマが連続していますが、空白で区切られていない点に注意してください。
    cityList := @Explode("Paris,London,,New York;Washington DC"; ",;"; @True);
    @Prompt([OkCancelList]; "List of cities"; ""; ""; cityList)
  8. @Implode。次の例は、空白 (デフォルト) を使用して値を区切り、リスト定数の要素を連結して文字列変数に収めます。結果の文字列には、「Minneapolis Detroit Chicago」という値が入ります。
    city := "Minneapolis" : "Detroit" : "Chicago";
    cityString := @Implode(city);
    @Prompt([Ok]; "Imploded string"; cityString)
  9. @Implode。次の例は、カンマと空白を使用して値を区切り、リスト定数の要素を連結して文字列変数に収めます。結果の文字列には、「Minneapolis, Detroit, Chicago」という値が入ります。
    city := "Minneapolis" : "Detroit" : "Chicago";
    cityString := @Implode(city; ", ");
    @Prompt([Ok]; "Imploded string"; cityString)
  10. @Implode。次の例は、コロンを使用して値を区切り、フィールドの値のリストを連結して文字列に収めます。[Categories] フィールドに Minneapolis、Detroit、Chicago を入力すると、結果の文字列は「Minneapolis:Detroit:Chicago」になります。
    @Prompt([Ok]; "Categories"; @Implode(Categories; ":"))
  11. IsMember。次のエージェントの例は、選択された文書を調べて、Adjusted が Categories リストにあるかどうかを判断します。リストにある場合、Categories はそのままで残されます。リストにない場合は、Categories リストに Adjusted が追加されます。
    FIELD Categories := @If(@IsMember("Adjusted"; Categories); Categories; @Explode(@Implode(Categories; ";") + ";Adjusted"; ";"));
    SELECT @All
  12. @IsNotMember。次の例は、選択された文書を調べて、Adjusted と Signed off の両方が Categories リストにないかどうかを判断します。どちらもない場合は、両方が Categories リストに追加されます。どちらもある場合、Categories はそのままで残されます。
    FIELD Categories := @If(@IsNotMember("Adjusted" : "Signed off"; Categories); @Explode(@Implode(Categories; ";") + ";Adjusted;Signed off"; ";"); Categories);
    SELECT @All
  13. @Keywords。次の例は、[Cities] フィールドで使用されているキーワードを検索します。
    keywords := @Keywords(Cities ; "Paris" : "Moscow" : "Tokyo" : "Boston");
    @Prompt([Ok]; "Keywords"; keywords)
  14. @Member。次の例は、ユーザーにリストから値を選択させ、リスト内でのその値の番号を表示します。
    cars := "Sedan" : "Coupe" : "Van" : "Truck";
    car := @Prompt([OkCancelList] : [NoSort]; "Cars"; "Pick one"; "Sedan"; cars);
    n := @Member(car; cars);
    @Prompt([Ok]; "Your selection is ..."; "Number " + @Text(n))
  15. @Replace。次の例は、colors に基づくリスト内で、red を scarlet、blue を turquoise に置換します。
    colors := "red" : "blue" : "yellow" : "blue" : "black" : "red";
    from := "red" : "blue";
    to := "scarlet" : "turquoise";
    result := @Replace(colors; from; to);
    @Prompt([OkCancelList] : [NoSort]; "Replacement list"; ""; ""; result)
  16. @Subset。次の例は、New Orleans、London、Frankfurt を first3、Singapore と Sydney を last2 に格納します。
    cities := "New Orleans" : "London" : "Frankfurt" : "Singapore" :"Sydney";
    first3 := @Subset(cities; 3);
    last2 := @Subset(cities; -2);
    @Prompt([OkCancelList] : [NoSort]; "First three"; ""; ""; first3);
    @Prompt([OkCancelList] : [NoSort]; "Last two"; ""; ""; last2)
  17. @Transform と @Nothing。次の例は、3 つの要素 (1、2、4) を持つリストを返します。
    OriginalList := 1 : 4 : -4 : 16;
    @If(OriginalList = @Nothing; @Nothing;
    @Transform(OriginalList; "x";
    @If(x >= 0; @Sqrt(x); @Nothing)))
  18. @Unique。次の例は、4 つの要素 (red、blue、yellow、black) を持つリストを返します。
    colors := "red" : "blue" : "yellow" : "blue" : "black" : "red";
    result := @Unique(colors);
    @Prompt([OkCancelList] : [NoSort]; "Unique list"; ""; ""; result)