問題タブ [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.

0 投票する
1 に答える
134 参照

f# - 可変および不変の値/バインディングを同時に宣言することは可能ですか?

たとえば、宣言したい

定数バインディングlenと可変i、それは可能ですか?

追加: 参照を使用します

0 投票する
2 に答える
2817 参照

ocaml - Ocamlで「let()=」とはどういう意味ですか?

次のようなコードがあります

一部のOCamlコードで。

これは何を意味するのでしょうか?「()」に特別な意味はありますか?またはそれはと同じ意味ですか

0 投票する
1 に答える
200 参照

lisp - Lispのlet*に相当するOcaml?

let ... and ... and ... in可能な場合はネストされたものよりも使用したいletのですが、通常のlet構文では、相互に依存する式に対してこれを許可していません。

禁止されている:

OCamlにはLispと同等のものがlet*ありますか?これはこれを可能にしますか?

0 投票する
3 に答える
1385 参照

haskell - Haskell let-expression の奇妙な型エラー -- 問題は何ですか?

今日、Haskellでイライラすることに出くわしました。

何が起こったかは次のとおりです。

  1. ghci で関数を書き、型シグネチャを付けました
  2. ghci は型について不平を言った
  3. 型シグネチャを削除しました
  4. ghci は関数を受け入れました
  5. 推定型を確認しました
  6. 推測された型は、与えようとした型とまったく同じでした
  7. とても悩みました
  8. どの let 式でも問題を再現できることを発見しました
  9. 歯ぎしり; SOの専門家に相談することにしました

型シグネチャを使用して関数を定義しようとします。

型シグネチャなしで関数を定義し、推論された型をチェックしました:

この関数を非常に有効に使用しました -- 適切に機能しました:


何が起こっているのかについての私の最善の推測:
型注釈は、do ブロックがある場合、何らかの形で let 式でうまく機能しません。

ボーナス ポイント:
標準の Haskell ディストリビューションにこれを行う関数はありますか? filterM私はそれが非常に異なることをすることに驚きました。

0 投票する
1 に答える
278 参照

recursion - F# で再帰関数内と外部で関数を定義することのパフォーマンスの副作用は何ですか?

他の関数に依存する再帰関数がある場合、それを実装するための推奨される方法は何ですか?

1) 再帰関数の外

2) 再帰関数内

3) 両方を 3 番目の関数内にカプセル化する

4) もっといいものは?

0 投票する
2 に答える
502 参照

scheme - Let と Let* のスキームの混同

上記のコードでは、なぜ答えが 70 ではなく 35 なのですか? 2 番目letの x は 7 なので、z は 7 + 3 = 10 で、結果は 7 * 10 = 70 になります。もう 1 つが let* であることはわかっています。この 2 を非常に混乱させています。サンプルは Google から入手したものです。 . 私はすでにグーグルで検索していますが、取得できません。

0 投票する
2 に答える
249 参照

scheme - スキーム let 構文エラー

上記のようなエラーが発生しています。どの部分が間違っているのかわかりません

0 投票する
2 に答える
11053 参照

clojure - Clojure: スコープと関数が値を返すようにする

「let」フォームの使い方を理解するのに苦労しています。以下の例では、後で関数内で作業するために、値「cols」をローカルにバインドしたいと考えています。ただし、「let」を使用すると、関数 sel-opt-tmp がリストではなく nil 値を返すことに気付きました。

*上記のコードは nil 値を返します。

「let」は関数のスコープ内の値のみをバインドすることを理解していますが、let スコープの外に値を渡す方法があるかどうかはわかりません。もしかしたら、自分が気づいていない「返す」のようなものがあるのでは?それとも、これは単に悪い設計であり、この場合バインディングをまったく使用すべきではありません (これは、読みにくい関数の長いチェーンを作成する傾向があります)?

0 投票する
4 に答える
1143 参照

clojure - def形式で破壊しないのはなぜですか?

フォーム(ここではClojure)で、let次のようなことができます

wheresvdは長さ 3 のリストを返します。これは非常に自然なことです。

フォームのデフォルトの動作としてのさまざまな一般化def? defこれがすでに行っていることとどのように干渉するかわかりません。Zen of Lisp や Clojure を理解している人は、なぜdefが ほど強力なバインディング (破壊による) をサポートしないのか説明できますかlet?