タグ付けされた質問 「pattern-matching」

このタグは、データ構造に特定の形状があるかどうか、または特定の場所に特定の値が含まれているかどうかのテストに関する質問に使用します。多くの関数型言語は、パターンマッチング構成を提供します。このタグ内のほとんどの質問には、プログラミングしている言語のタグも必要です。このタグは通常の表現の質問には使用しないでください。[regex] INSTEADを使用してください。同様に、POSIXのようなシェルでのパターンマッチング(グロビング)には、[glob]を使用します。

13
Pythonで文字列が繰り返されるかどうかを確認するにはどうすればよいですか?
特定の文字列が文字列全体で繰り返されるかどうかをテストする方法を探しています。 例: [ '0045662100456621004566210045662100456621', # '00456621' '0072992700729927007299270072992700729927', # '00729927' '001443001443001443001443001443001443001443', # '001443' '037037037037037037037037037037037037037037037', # '037' '047619047619047619047619047619047619047619', # '047619' '002457002457002457002457002457002457002457', # '002457' '001221001221001221001221001221001221001221', # '001221' '001230012300123001230012300123001230012300123', # '00123' '0013947001394700139470013947001394700139470013947', # '0013947' '001001001001001001001001001001001001001001001001001', # '001' '001406469760900140646976090014064697609', # '0014064697609' ] 繰り返す文字列であり、 [ '004608294930875576036866359447', '00469483568075117370892018779342723', '004739336492890995260663507109', '001508295625942684766214177978883861236802413273', '007518796992481203', '0071942446043165467625899280575539568345323741', '0434782608695652173913', '0344827586206896551724137931', '002481389578163771712158808933', '002932551319648093841642228739', '0035587188612099644128113879', …


2
「x is null」と「x == null」の違いは何ですか?
C#7では、 if (x is null) return; の代わりに if (x == null) return; 古い方法よりも新しい方法(以前の例)を使用する利点はありますか? セマンティクスは異なりますか? 好みの問題ですか?そうでない場合、いつどちらを使用すればよいですか? 参考:C#7.0の新機能。


4
Scalaで `:_ *`(コロンアンダースコアスター)は何をしますか?
この質問からの次のコードがあります: def addChild(n: Node, newChild: Node) = n match { case Elem(prefix, label, attribs, scope, child @ _*) => Elem(prefix, label, attribs, scope, child ++ newChild : _*) case _ => error("Can only add children to elements!") } この部分を除いて、すべてがかなり明確です。 child ++ newChild : _* それは何をするためのものか? Seq[Node]別のと連結されていることを理解しNode、それから?何をし: _*ますか?

4
Scalaのパターンマッチングシステムでの比較演算子の使用
Scalaのパターンマッチングシステムを使用して比較を照合することはできますか?例えば: a match { case 10 => println("ten") case _ > 10 => println("greater than ten") case _ => println("less than ten") } 2番目のケースステートメントは違法ですが、「aがいつより大きいか」を指定できるようにしたいと思います。


5
Ruby Regexpグループマッチング、変数を1行で割り当てる
私は現在、文字列を複数の変数に再展開しようとしています。文字列の例: ryan_string = "RyanOnRails: This is a test" 私はこれを次の3つのグループの正規表現と一致させました。 ryan_group = ryan_string.scan(/(^.*)(:)(.*)/i) 各グループにアクセスするには、次のようにする必要があります。 ryan_group[0][0] (first group) RyanOnRails ryan_group[0][1] (second group) : ryan_group[0][2] (third group) This is a test これはかなりばかげているようで、私は何か間違っているように感じます。私はこのようなことができると期待されます: g1, g2, g3 = ryan_string.scan(/(^.*)(:)(.*)/i) これは可能ですか?それとも私がそれをやっているよりも良い方法はありますか?

3
Scalaのパターンマッチングはバイトコードレベルでどのように実装されますか?
Scalaのパターンマッチングはバイトコードレベルでどのように実装されますか? それは一連のif (x instanceof Foo)構成要素のようなものですか、それとも何か他のものですか?そのパフォーマンスへの影響は何ですか? たとえば、次のコード(Scala By Exampleページ46〜48から)を指定すると、evalメソッドの同等のJavaコードはどのようになりますか? abstract class Expr case class Number(n: Int) extends Expr case class Sum(e1: Expr, e2: Expr) extends Expr def eval(e: Expr): Int = e match { case Number(x) => x case Sum(l, r) => eval(l) + eval(r) } PS私はJavaバイトコードを読み取ることができるので、バイトコード表現で十分ですが、おそらく他の読者がJavaコードとしてどのように見えるかを知っている方が良いでしょう。 PPS 『Scalaでのプログラミング』という本は、Scalaの実装方法に関するこの質問および同様の質問に対する回答を提供していますか?その本を注文しましたが、まだ到着していません。

9
awk / sedで複数回発生する可能性がある2つのマーカーパターン間の線を選択する方法
2つの異なるマーカーパターン間で発生している線を使用awkするsed方法または選択するにはどうすればよいですか?これらのパターンでマークされたセクションが複数ある場合があります。 例:ファイルに以下が含まれているとします。 abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu そして、開始パターンはでabcあり、終了パターンはmno なので、次のような出力が必要です。 def1 ghi1 jkl1 def2 ghi2 jkl2 sedを使用してパターンを一度照合します: sed -e '1,/abc/d' -e '/mno/,$d' <FILE> どのような方法があるsedか、awk ファイルの終わりまで、繰り返しそれを行うには?

1
Scalaのパターンマッチングが変数で機能しないのはなぜですか?
次の関数を取ります: def fMatch(s: String) = { s match { case "a" => println("It was a") case _ => println("It was something else") } } このパターンはうまく一致します: scala> fMatch("a") It was a scala> fMatch("b") It was something else 私ができることは次のとおりです: def mMatch(s: String) = { val target: String = "a" s match { …

8
PostgreSQL LIKEクエリのパフォーマンスの変化
LIKEデータベース内の特定のテーブルに対するクエリに関して、応答時間にかなり大きな変動が見られます。200〜400ミリ秒以内に結果が得られる場合がありますが(非常に許容範囲内)、結果が返されるまでに30秒ほどかかる場合もあります。 LIKEクエリは非常に多くのリソースを必要とすることを理解していますが、応答時間にこのような大きな違いが生じる理由を理解していません。owner1フィールドにbtreeインデックスを作成しましたが、LIKEクエリに役立つとは思いません。誰かアイデアはありますか? サンプルSQL: SELECT gid, owner1 FORM parcels WHERE owner1 ILIKE '%someones name%' LIMIT 10 私も試しました: SELECT gid, owner1 FROM parcels WHERE lower(owner1) LIKE lower('%someones name%') LIMIT 10 そして: SELECT gid, owner1 FROM parcels WHERE lower(owner1) LIKE lower('someones name%') LIMIT 10 同様の結果。 テーブルの行数:約95,000。

1
Elm Compilerが永久に実行され、コンピュータが熱くなる
この問題の原因はわかりませんが、プロジェクトでは、コンパイラーがモジュールをコンパイルするだけで何時間もかかっています。私のコードベースの合計サイズは352KBですが、10KBを超えるモジュールはありません。私はネイティブポートを使用していますが、それは非常に簡単です。私はそれでフェッチDate.now()しています。 elmコンパイラのコンパイルに時間がかかる原因となる既知の問題はありますか?私は多くの依存関係はありませんが、Htmlをたくさん使用しています。これを引き起こす原因についてのヒントを本当にいただければ幸いです。 編集する したがって、ケース式が大きいと、オプティマイザに0.16のように長い時間がかかることがわかります。ここだエルムは、議論に議論の問題を育て、そして厄介なケースの試合の要旨は。 私は冗長で、ニンジンをそこに留めておくと思いますが、elmのコンパイラが大文字小文字を区別するためにこのルートをとるのはなぜですか?ここで起こっている基本的な機械は何ですか?コンパイラーがcaseステートメントで60以上のパターン一致を最適化するのに1時間以上かかるのはなぜですか?

3
Scalaで複数のCasesクラスを一致させる
一部のケースクラスに対してマッチングを行っていますが、2つのケースを同じ方法で処理したいと考えています。このようなもの: abstract class Foo case class A extends Foo case class B(s:String) extends Foo case class C(s:String) extends Foo def matcher(l: Foo): String = { l match { case A() => "A" case B(sb) | C(sc) => "B" case _ => "default" } } しかし、これを行うとエラーが発生します: (fragment of test.scala):10: error: illegal …

3
PostgreSQLは「アクセントを区別しない」照合をサポートしていますか?
Microsoft SQL Serverでは、「アクセントを区別しない」照合(データベース、テーブル、または列)を指定できます。つまり、次のようなクエリが可能です。 SELECT * FROM users WHERE name LIKE 'João' Joao名前のある行を検索します。 unaccent_string contrib関数を使用してPostgreSQLの文字列からアクセントを取り除くことが可能であることは知っていますが、PostgreSQL がこれらの「アクセントを区別しない」照合をサポートしているかどうか疑問に思っているため、SELECT上記が機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.