私はリストの長さを与えるメソッドの長さ(リスト、var)を持っていますが、文字列の長さ、プロローグを使用して文字列長を見つける方法
答えて
はそれで遊んでいたと私は
?- length("hello", R).
R = 5.
として述語を与えました。
でより良いオプションです。プロローグシステムをチェックし、プロローグフラグdouble_quotesを照会することができます。コードであれば、二重引用符が文字コードリストとして読み込まれます。SWI-Prolog:? - current_prolog_flag(double_quotes、X)。 X =コード。 ? - "hello" = [104,101,108,108,111]。 –
文字列は原子であるので、あなたはなど、部分文字列を抽出し、長さを得るためにそれらを直接操作することはできませんまず、あなたがatom_chars/2
と文字リストにそれらを変換する必要があります。
atom_chars(StrVar, ListVar), length(ListVar, LengthVar).
'name/2'はISO Prologではありません。ここでは最適ではありません。 – m09
ありがとう、@モグ。更新しました。しかし、CMが言ったように、atom_lengthはISO –
あなたがしたい場合ISO Prologを使用すると、 のname/2
述語は使用されません。
ISO Prologはatom_codes/2
とatom_chars/2
を提供しています。それらは、 コードを のリストまたは文字のリストのいずれかに戻す機能を提供します。
?- atom_codes(ant, L).
L = [97,110,116]
?- atom_codes(X, [97,110,116]).
X = ant
?- atom_chars(ant, X).
X = [a,n,t]
?- atom_chars(X,[a,n,t]).
X = ant
今、あなたは原子別名文字列の長さを決定する方法を疑問に思う:いくつかの例のinvokationsは、2つの述部の ある原子はPrologシステムの文字列であり、 文字は単にここで長さ1の原子であります。 1つの の方法は、最初にコードまたは文字を決定し、次に このリストの長さを計算することです。しかし、ISOはatom_length/2
という述語も提供しています。
?- atom_length(ant,X).
X = 3
多くのPrologシステムが内蔵された述語、すなわち SWI Prologの、GNU Prologの、Jekejekeプロローグなどの、このセットを提供可能な文字 コード範囲とエンコーディングはPrologシステムに依存します..:これは次のように動作します。一部のものは、 のみ8ビットコード、一部の16ビットコード、および一部の32ビットコードを許可します。
また、アトムの最大長が異なる場合があります。 は、アトム タイプと比較してタップされない余分な文字列タイプです。しかし、この余分なタイプは、普通は と二重引用符で囲まれた文字列ではなく、 の文字リストの略語です。 Prologのマニュアルから
string_length(+String, -Length)
:
さようなら驚くべきことに:)
多分これを働いた
これはSWI-Prologでも利用できますが、この述語が他のPrologシステムに組み込まれているかどうかはわかりません。 –
- 1. LINQを使用して文字列[]内で最も長い文字列を見つける方法
- 2. 文字列配列の長さを見つける方法は?
- 3. Scalaを使用して文字列内の文字の長さを見つける方法Spark
- 4. OpenJpa JPQLで文字列の長さを見つける方法
- 5. RegExを使用して長い文字列の桁を見つける
- 6. jqueryセレクタ文字列を使用してdiv要素を見つける方法
- 7. 文字列の部分文字列を見つける方法
- 8. Elasticsearch - クエリ文字列を使用して長いテキストの正確な値を見つける方法
- 9. Pythonを使用して文字列の最初の大文字でない文字を見つける方法
- 10. indexofを使用して文字列のパターンを見つける
- 11. LINQを使用して文字列のリスト内の部分文字列を見つける方法
- 12. 文字列を使用して文字列と同じ名前のクラスを見つける方法
- 13. プロローグでユニバーサルファクトを見つける方法プロローグで
- 14. 文字列中で最も長い連続した部分文字列を見つける方法は?
- 15. C++の文字列配列で文字の最長シーケンスを見つける方法(繰り返し)
- 16. 長さkの文字列の順列を見つける
- 17. Swift - [String]配列の最長文字列を見つけるベストプラクティス
- 18. 文字列を見つけて文字列から削除する方法は?
- 19. PHP文字列のインデックスを使用して文字を見つける方法は?
- 20. 文字列を特殊文字で見つける方法、つまりT213-ASDF |シリコンバレー| vbaを使用したホワイト
- 21. Pythonを使用して文字列上の数字を見つける
- 22. SPARQL:類似した文字列を見つける方法?
- 23. 最長の文字列プレフィックスを見つける
- 24. アルファベット順に最長の部分文字列を見つける
- 25. 文字列中で最長の単語を見つける
- 26. 特定の長さの文字列を見つけるVBA
- 27. 文字列中で最長類似サブシーケンスを見つける
- 28. Googleのスクリプトで文字列の長さを見つける
- 29. 文字列の長さを見つけるときのセグメンテーションフォルト
- 30. Railsで文字列の長さを見つけるには?
「[プロローグの文字列を使用する]」(http://obvcode.blogspot.com/2008/11/working-with-strings-in-prolog.html)の記事 –
この記事は混乱します(文字列と非標準的な述語を助言する。私はそれを読むことを勧めます。私は代わりにPrologの文字列を取得する[この優れた答え](http://stackoverflow.com/questions/8264699/what-is-the-difference-between-and-in-prolog/8269897#8269897)aviseだ – m09