問題タブ [let]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 「let」での Haskell 解析エラー
私は Haskell の初心者であり、Rabin Karps アルゴリズムをプログラムする必要があります。私の答えはうまくいくはずですが、コンパイルすると「let」の解析エラーが発生し続けます。誰でも私を助けてくれませんか。
これが私のコードです:
haskell - GHCi の "let" -- 何をしますか?
「let」が GHCi で何をするかについて誰かがドキュメントを指摘してくれたり、それが失敗した場合に説得力のある説明をしてくれたりしてくれれば幸いです。
私が知る限り、"let" ("in" なし) は Haskell 言語自体の一部ではありません。一方、コロンが前に付いていないため、GHCi コマンドのようにも見えません。 .
lisp - Lisp の学習。ある関数から値を取得して別の関数内で使用できないようです
リスト内の最大数を見つけようとしていて、それを使って何かをします:
ただし、null を出力しますが、maxList は機能します。私は何を間違っていますか?
macros - 繰り返しローカル変数を作成しますか?
任意の数の長いリストを引数として受け取る関数を作成しました。このリストから、 を使用してローカルで行列を作成したいと考えていますlet
。マトリックスには、リスト内の数列に基づいた行と列があります。例えば、
ローカルに作成する必要があります
つまり、最初の行列は、リスト内の要素に隣接する最初の 2 つの要素から次元を取得します。
私の質問は次のとおりです:式で任意に長いローカル変数のセットを繰り返し作成する方法はありMn
ますlet
か? それとも、これはマクロを使用する必要がある場合ですか?
haskell - Haskell ネストされた let in ラムダ
何かを見逃しているに違いありませんが、この不自然な例が機能しない理由がわかりません。
ghci > 入力 `h'' の解析エラー
ただし、次の同等の部分は問題ありません。
これは私の構文の問題だと思いますが、test1 には何も問題はありません。ありがとう。
編集:問題を見つける正しい方法を指摘してくれてありがとう。vim-haskellConceal プラグインに関係していることが判明しました。別のエディターでコードをコピーして貼り付けて保存し、vim に戻ると、ネストされた let-in ブロックに別のインデントがあることに気付きます。そのプラグインを削除した後は、すべて問題ありません。
編集: このプラグインのコードを簡単に読んでも不適切なものは何も見つからなかったので、このプラグインのせいにするのはやめましょう。おそらく、vim7.3 の「隠蔽」機能が根本的な原因です。でも、暖かくて居心地の良いベッドに行きたいです...
clojure - Clojureの「let」リストをループしますか?
次のように、「let」で相互にバインドしたい引数の数が不明な場合。
関数/マクロなどの内部でletをバインドし、リストをループしたい場合、これをどのように行いますか?
レットには4つの要素がありますが、「キー」をループするだけであることに注意してください。使用例として、キーにバインドされた値がbのような数値(55)であるかどうかを確認する場合があります。
編集:例として:この以下は非常に壊れているが、単に問題を説明することを目的としていることに注意してください。
入力:(func [a "hello" b 55]
つまり、基本的には、次のような関数が必要です。
- 引数を次のようなリストの形式にバインドします:[ab]
- prints "omg no way!")-ループの一部であってはならず、関数内で1回だけ出力する必要があります
- 「let-list」をループするforループのようなループのようなもので、次のようになります。「a、数字ですか?いいえ、b数字ですか?はい、「roar」を出力します
出力:omg no way roar
もう一度: 関数内のlet内のキーワードにアクセスする方法があるかどうか疑問に思っています。forループが示すように、個々の要素にアクセスして、その要素を使って処理を実行したいと思います。私が([x引数]の代わりに]を使用した場合、次のようになります:omg no way、roar roar(bは55に関連付けられているため、数値ですが、55も数値ですが、55は55であるため、55を使用する必要はありません。すでにb)に関連付けられています
record - Z3でのlet-expressionsのエンコード
次のコードは、2つのフィールドarray-fld
と。を持つ「レコード」をエンコードしますblist-fld
。これらのフィールドの更新関数を定義してから、trueである必要があるプロパティをアサートしました(ただし、z3はこれを報告しますunknown
)。これはZ3バージョン4.0であり、次のように実行されz3 -smt2 -in
ます。
方程式array-valバインディングを代入して、手動で実存を巻き戻し/削除すると、次のようになります。
そしてこれは喜んで解決されsat
ます。
これには4つの質問があります。
- z3を呼び出して、最初のインスタンスと2番目のインスタンスを解決する方法はありますか?
- レコード/構造体を別の方法でエンコードする必要がありますか?
- let-expressionsを別の方法でエンコードする必要がありますか(存在記号につながるのはこれらです)?
- または、let-expressionsを直接拡張する必要があります(これは自分で行うこともできますが、参照が多い場合は大きな用語になる可能性があります)。
for-loop - 基本的なClojure構文
私がマクロを持っているとしましょう、マクロの中に私はこれを持っています:
本当に単純なClojureに関する適切な情報を見つけるのに非常に苦労しているので、ここで質問します。上記のタスクを実行するには、何をする必要がありますか?これは可能だと思いますが、一番重要な部分はわかりません!
variables - let* の未定義変数
何らかの理由で、コードを含むプログラムを Cc Ck しようとすると:
rank-dump-vec
「変数が定義されていません」というエラー メッセージが表示されます。これがなぜなのかわかりません。逆引用符とコンマは問題ないと思います。何か不足していますか?
haskell - タイプアノテーションなしのletバインディングでの単相性の回避
型を使用してインスタンスを明確にするコードがいくつかあり(実際のコードは型タグにGHC.TypeLitsシングルトンを使用していますが、それは密接な関係はないと思います)、テキストレベルの重複を避けるためにletバインディングを使用したいと思います; 残念ながら、これは結果を単形化します。
以下は問題の例です。
上記のコードはコンパイルされません(ただし、もちろん、多形であるように注釈を入力すると、すべてが正常に機能します)、と一致しquux
なかったと正しく文句を言います。タイプアノテーションを付けずに、また各使用サイトで繰り返すことなく、コンパイルを成功させる方法はありますか?Int
Char
bar undefined