Shortest

Shortest[p]

パターン p と矛盾しない最短の文字列にマッチするパターンオブジェクトである.

詳細

  • Shortestは,通常の式パターンと文字列パターンの両方に使うことができる.
  • 1つの式の中に複数のShortestオブジェクトがある場合,先に現れた方に最短の文字列にマッチする,より高い優先権が与えられる.
  • Shortest[p,pri]には,最短の文字列となる優先権 pri が与えられる.最短の文字列のマッチは優先権が高いShortestオブジェクトから試される.
  • 優先権はどのような式でもよく,標準的なWolfram言語のSort順に並べられる.Shortest[p]は,可能性が最も高い優先権を指定する.
  • 同等の優先権を持つShortestオブジェクトは,式中で先に現れたものから試される.
  • 明示的なShortestあるいはLongestが与えられない場合,一般に,通常の式のパターンはShortest[p]であり文字列パターンはLongest[p]であるとみなされる. »
  • ShortestOptionalと組み合せると特別な意味を持つ.Shortest[patt:def]は,まず値 def を使ってマッチングを試し,その後ではじめてパターン patt を使う.Optionalは,明示的なLongestまたはShortestなしで使われた場合は,事実上Longestでラップされる. »
  • 通常の式の場合,Shortest[p] p それ自身だけでなく,p のすべての部分もまた最短の文字列にマッチしなければならないものとする.
  • Shortest[p]は「欲張りではないパターン」に相当する.
  • Shortest[p]は,パターンのどこかにその他の制約条件がある場合は,p にマッチする絶対最短式には相当しないかもしれない.

例題

すべて開くすべて閉じる

  (1)

Shortestを使って曖昧なマッチを制御する:

スコープ  (2)

Shortestは文字列パターンに使える:

曖昧な選択に影響を与える優先順位を使う:

アプリケーション  (1)

次の可変長引数関数について考える:

Shortestを使ってこれを1つのパターンとして表す:

特性と関係  (4)

式については,パターンに連続した列がある場合は,事実上最初のものがShortestでラップされる:

文字列パターンについては,Shortestが最短長のすべてのマッチの「貪欲ではない」あるいは「怠惰な」マッチを与える:

通常のパターンについては,ほとんどのパターンが,事実上,Shortestでラップされる:

文字列パターンは,事実上,Longestでラップされる:

デフォルトで,patt:def はまず patt を使ってパターンを試し,その後ではじめて def を試す:

ShortestOptionalと組み合せるとこの順序が逆になる:

考えられる問題  (3)

追加的な制約がある場合は,Shortestは絶対最短列をマッチしないかもしれない:

文字列パターンについては,Shortestは,絶対最短マッチだけではなく,すべての最短部分文字列をマッチする:

文字列表現では優先順位はサポートされていない:

Wolfram Research (2007), Shortest, Wolfram言語関数, https://reference.wolfram.com/language/ref/Shortest.html.

テキスト

Wolfram Research (2007), Shortest, Wolfram言語関数, https://reference.wolfram.com/language/ref/Shortest.html.

CMS

Wolfram Language. 2007. "Shortest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/Shortest.html.

APA

Wolfram Language. (2007). Shortest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Shortest.html

BibTeX

@misc{reference.wolfram_2024_shortest, author="Wolfram Research", title="{Shortest}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/Shortest.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_shortest, organization={Wolfram Research}, title={Shortest}, year={2007}, url={https://reference.wolfram.com/language/ref/Shortest.html}, note=[Accessed: 21-November-2024 ]}