私はこの (define s (hi,there))
のようなものを持っているならば、私は (match s [(,h , ,t)] ...)
のような試合 に書くことができます。しかしmatch
ので、私はこれをどのように行うことができます,
を必要とするため、それは、動作していませんか?どのようにラケットの試合で一致するか?
答えて
最初に、コンマ,
は読者の略語であることに注意してください。 (hi,there)
は(hi (unquote there))
と表示されています。これは、 のスポットがありません。デフォルトのプリンタでは、最初の要素が特別な方法でunquote
のリスト が印刷されるためです。
Welcome to DrRacket, version 5.3.0.14--2012-07-24(f8f24ff2/d) [3m].
Language: racket.
> (list 'hi (list 'unquote 'there))
'(hi ,there)
したがって、必要なパターンは '(list h(list' unquote t)) 'です。
> (define s '(hi,there))
> (match s [(list h (list 'unquote t)) (list h t)])
(list 'hi 'there)
あなたが引用された部分の内部シンボルとしてカンマを使用したい場合は、バックスラッシュを使用します。
> (define s '(hi \, there))
> (match s [(list h c t) (symbol->string c)])
","
とスタンドアロンコンマシンボルの'|,|
を使用しています。
> (match s [(list h '|,| t) (list h t)])
'(hi there)
どちらの場合でも、実際には空白を使用して物を分け、リストを使用する必要があります。
(define s (hi,there))
は有効なラケットではありません。
コンマがある理由は、私は多くのものを分離するためにそれを使用しているファイルを解析し、ファイルを解析するためにラケットのマッチを使用したいということですコンマはラケットではとても特別です!)しかし、お返事いただきありがとうございます。 –
あなたはカンマが必要な場所について混乱するかもしれないと思います。 Racketでは、リスト内の要素を区切るためにカンマを使用しません。代わりに、空白を使用するだけです。これが間違っているかどうか教えてください。しかし、私が想像していることは、(define s '(hi there))
のような式にマッチさせようとしていることです。これを行うには、あなたは省略記号があるエリアで、その後
(match s
[`(,h ,t) ...])
を使用することになり、変数h
は値'hi
を持ち、変数t
は'there
ラケットで 'match 'を利用して、括弧の中にあるCOMMを使ってs式のような形式を解析したいだけです。 –
- 1. DjangoのURLの試合はurls.pyでルールに一致しない
- 2. IDはどのように一致させるのですか?
- 3. フィラーの貪欲でない試合からの一致の取得
- 4. プリプレグ試合、私はプリプレグ一致ルールの書き込み
- 5. このループは1回だけ一致し、終了します。どのようにいくつかの試合を返すのですか?
- 6. ラケットの構造タイプ上のKleeneスターとのパターン一致
- 7. PHPがパスワードが一致するかどうかを確認し、一致する場合はそのデータを
- 8. 2つの一致クエリをelasticsearchのクエリに結合するにはどうすればよいですか?
- 9. DjangoのURLはどのように一致しますか?
- 10. Solrの:完全一致検索に戻り、正しい結果一致したが、ファジィ返さない試合
- 11. E4Xの式が一致するかどうかはどのように判断できますか?
- 12. NLTKでは、テキストの一致をどのように取得できますか?
- 13. 正規表現 - 試合内で試合を見つけるにはどうすればいいですか?
- 14. grepとの一意の一致の数を出力するにはどうすればよいですか?
- 15. 検索の一部と一致するレコードを取得するにはどうすればよいですか?
- 16. primefaces + javascriptで一致するかどうかを確認する
- 17. どのように文字列に一致しない?
- 18. 型付きラケットの型推論はどのように機能しますか?
- 19. どのように不等長の2つのnumpy配列に一致する?
- 20. どのように文字列の任意の部分に一致する?
- 21. このタイプのミスマッチはどのように一致しますか?
- 22. 列名に一致するベクターをどのようにしてrbindすることができますか?一緒にベクトルを結合するとき
- 23. 私はどのようにmysqlの2つのテーブルに一致し、一致する値を取得するのですか?
- 24. バージョンが一致しない場合、ProviderManifestTokenはどのようにデータベースに影響しますか?
- 25. どのように一致した文の行を取得するには?
- 26. bison文法の文字列とはどのように一致しますか?
- 27. フェイスブックと消費アプリケーションとのアクセストークンはどのように一致しますか
- 28. jqueryの一致したすべての要素で一致する属性を削除するにはどうすればよいですか?
- 29. フォルダに一致するファイルリクエストを別のリンクにリダイレクトするにはどうすればよいですか?
- 30. System.Web.Routing/ASP.NET MVCのリテラルチルダ文字(〜)で始まるURLはどのように一致させるのですか?
が迷惑コメントを許し値を持っていますが、それカンマを含む入力を解析するためにラケットの「一致」を使用すると、おそらく素晴らしいアイデアではないようです。入力の残りがラケット/ LISPに非常に非常に近い場合を除き、これは弾丸を噛んで実際のパーサを使用する場合のように聞こえます。あなたのユースケースを誤解している場合は、事前にお詫び申し上げます。 –
@JohnClements私はあなたが正しいと思います。私の主なプログラムはRacketで書かれています。私は、Racketでファイルを解析して構築したデータ構造を取得したいだけです。ファイルはS-Expのように見えますが、非常に遅くまでコンマがあることがわかりました... –
ソースファイルにどのような形式があるのかについての仕様はありますか?ソースファイルはよく知られた言語で書かれていますか? –