Longest

Longest[p]

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

詳細

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

例題

すべて開くすべて閉じる

  (1)

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

スコープ  (2)

Longestは文字列パターンに使うことができる:

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

アプリケーション  (2)

整数の最長の列を求める:

下記の変数の長さの引数関数を見てみる:

Longestを使って1つのパターンとして表現する:

特性と関係  (4)

文字列の場合,パターンに連続する文字列が含まれていると,最後の文字列が事実上Longestでラップされる:

文字列パターンの場合は,Longestが最大長のすべてのマッチについて「貪欲な」マッチを提供する:

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

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

Shortest[patt:def]は,まず def を使ってパターンを試し,その後ではじめて patt を使う:

LongestOptionalと組み合されると,この順番が逆になる:

次は,どちらのラッパーも使わないデフォルト動作である:

考えられる問題  (3)

追加的な制約条件がある場合は,Longestは曖昧な最小列をマッチしないかもしれない:

文字列パターンの場合は,Longestは,絶対最長部分文字列だけでなく,すべての最長部分文字列をマッチする:

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

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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