問題タブ [language-construct]
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.
python - Python:定数パラメータを宣言する方法はありますか?
私は方法を持っています:
bar
定数としてマークする方法はありますか? 「の値bar
は変更できません」または「が指すオブジェクトbar
は変更できません」など。
php - PHP: 言語構造とは何ですか? なぜ必要なのですか?
次のようなステートメントに出くわします。
echo
は言語構造ですが、print は関数であるため、戻り値があります
と
die
言語構造です
私の質問は、これらの言語構造とは何か、さらに重要なことに、なぜそれらが必要なのかということです。
c# - メンテナンスのために、特定のプログラミング構造(およびその他)を避ける必要がありますか?
私は非個人的なプロジェクトに取り組んでいるので、メンテナンスプログラマーは私ではないと言っても過言ではありません。そうでなければ、この質問をする必要はありません。
ここで、コードを意図的に読みにくくするのではなく、状況に適している(入力するコードが少ない)ために、コードで試してみたい構造(デリゲート、ラムダ式)がいくつかあります。私は言語に慣れていないので、それらの使用も練習します。
しかし、私たちの多くはac#のバックグラウンドを持っていなかったため、メンテナンスプログラマーがすべての構成を知っているかどうかはわかりません。また、彼が私と同じようにプログラミングに熱心であるのか、それとも通常のように扱っているのかはわかりません。日中の仕事。だから私の質問は:
保守性を向上させるために、特定のプログラミング構造を回避する必要がありますか?
上記の質問に対する答えが「はい」の場合、使用を避けるべき構成のサブセットはありますか?
言語を完全に学ぶのはメンテナンスプログラマーの責任ですか?
php - PHPで、エコーが関数として実装されなかったのはなぜですか?(echoとprintfではありません)
私はただ興味があります。PHPでは、なぜecho
関数として実装されなかったのですか?なぜPHPは私たちに教えてくれずprintf
、決して教えてくれなかったのecho
ですか?その点に注意してください:
echo
これはvs.についての質問ではありませんprintf
。echo
私はそれが言語構造であることをすでに知っていました。
更新:ちなみに、?printf
を使用して実装されましたecho
c# - C# の PHP の list() に似た言語構造はありますか?
PHP には、list()
1 つのステートメントで複数の変数の割り当てを提供する言語構造があります。
C#にも似たようなものはありますか?
そうでない場合、リフレクションに対処することなく、次のようなコードを回避するのに役立つ回避策はありますか?
c# - C#で1行のバイトを減算する方法
これは本当に奇妙です。誰かがこれを説明できますか?
このコードは機能しません:
このコードも機能しません:
それでも、減算を別の行に置くことは問題なく機能します。
必要に応じて、ステートメントを別々の行に配置してもかまいません...しかし、疑問に思う必要があります...
なんで?
javascript - var {u,v,w} = x; とは何ですか? Javascriptで意味?
私はこれをJSコードで見ました:
それは何をするためのものか?
syntax - PowerShell で括弧を使用する他の方法はありますか?
Powershell の世界に慣れていないので、ときどきトリッキーな構文に行き詰まることがあります。そのため、言語内で括弧を使用する可能性をすべて見つけようとしています。
もう少し知っていますか?ここに追加できますか?
ここで私のもの(パイプラインでのカーリーとメソッド呼び出しでのラウンドの基本的な使用法を省略):
php - 文字列を使用して PHP 言語構造を呼び出す
一部のコンテンツをバッファリングしたい。コンテンツがどのようにフェッチされるかは依存するため、ソースを含めるかエコーするかを定義するために、型パラメーターをバッファー関数に追加しました。
PHP
出力
なぜですか?文字列変数で、echo() や include() のような標準的な PHP 関数を呼び出すことはできませんか?
編集:回答により適したものにするために、質問をわずかに変更しました。
c# - Haskell-> C#変換に関する質問
バックグラウンド:
著者が最初に他の多くの言語でタグ付けしたが、後にHaskellの質問に焦点を合わせたとき、私はこの質問を見ることに「引きずり込まれ」
ました。
残念ながら、私はHaskellの経験がまったくないので、質問に実際に参加することができませんでした。しかし、答えの1つが私の目に留まり、答え者はそれを純粋な整数の数学の問題に変えました。それは素晴らしかった私にとっては、それがどのように機能するかを理解し、これを再帰的なフィボナッチの実装と比較して、それがどれほど正確であるかを確認する必要がありました。無理数を含む関連する数学を思い出せば、自分ですべてを解決できるかもしれないと感じています(しかし、私はそうしません)。ですから、私にとっての最初のステップは、それを私が精通している言語に移植することでした。この場合、私はC#を実行しています。
幸いなことに、私は完全に暗闇の中にいるわけではありません。私は別の関数型言語(OCaml)の経験が豊富なので、その多くは私には多少馴染みがあるように見えました。変換から始めて、計算に役立つ新しい数値タイプを基本的に定義したため、すべてが簡単に見えました。しかし、私は翻訳でいくつかの障害にぶつかり、それを終えるのに苦労しています。完全に間違った結果が出ています。
分析:
これが私が翻訳しているコードです:
したがって、私の調査と推測できること(どこかで間違っている場合は訂正してください)に基づいて、最初の部分Ext
は2つのパラメーターを持つコンストラクターで型を宣言します(そして型/モジュールInteger
を継承すると思います)。Eq
Show
次は、Ext
から「派生」する実装ですNum
。 fromInteger
からの変換を実行しInteger
ます。 negate
は単項否定であり、次に2進加算および乗算演算子があります。
最後の部分は、実際のフィボナッチの実装です。
質問:
回答の中で、hammar(回答者)は、べき乗はのデフォルトの実装によって処理されると述べていますNum
。しかし、それはどういう意味で、実際にこのタイプにどのように適用されるのでしょうか。私が見逃している暗黙の数体「フィールド」はありますか?含まれている対応する各数値にべき乗を適用するだけですか?私はそれが後者を行い、このC#コードで終わると思います:
ただし、これは、なぜ必要なのかを私が認識する方法と矛盾しますnegate
。これが実際に発生した場合は、必要ありません。
今、コードの要点。私は最初の部分を次のように読みました
divide $ twoPhi^n - (2-twoPhi)^n
:
次の式の結果を除算します:twoPhi ^ n-(2-twoPhi)^n。
ものすごく単純。3乗twoPhi
しn
ます。それから残りの結果を引きます。ここではバイナリ減算を行っていますが、単項否定のみを実装しました。それとも私たちはしませんでしたか?または、加算と否定(私たちが持っている)を組み合わせて構成することができるので、バイナリ減算を暗示することができますか?私は後者を想定しています。そして、これは否定についての私の不確実性を和らげます。
最後の部分は実際の分割です:
divide (Ext 0 b) = b `div` 2^n
。ここで2つの懸念。私が見つけたところによると、除算演算子はなく、`div`
関数だけです。だから私はここで数字を割る必要があります。これは正しいです?または、除算演算子がありますが、`div`
何か特別なことをする別の関数がありますか?
行頭の解釈方法がわかりません。単純なパターンマッチですか?言い換えると、これは最初のパラメータが?である場合にのみ適用されます0
か?一致しなかった場合(最初はゼロ以外)、結果はどうなりますか?または、最初のパラメーターを気にせず、関数を無条件に適用するので、それを解釈する必要がありますか?これが最大のハードルのようであり、どちらの解釈を使用しても、誤った結果が得られます。
私はどこかで間違った仮定をしましたか?それとも大丈夫ですか、C#を間違って実装しただけですか?
コード:
これは、誰かが興味を持った場合に備えて、これまでの(機能しない)翻訳と 完全なソース(テストを含む)です。
進捗:
さて、これまでの回答とコメントを見て、私はここからどこに行くべきか、そしてその理由を知っていると思います。
p
べき乗は、乗算操作を実装したことを前提として、通常の処理を実行するために必要なだけです。数学の授業でいつも言われていることをやるべきだとは思ってもみませんでした。加算と否定を使用することによる暗黙の減算も、非常に便利な機能です。
また、私の実装でタイプミスを発見しました。掛けるべきときに付け加えました。
結論:
これで完成です。重要な演算子にのみ実装し、名前を少し変更しました。複素数と同じように名前が付けられています。これまでのところ、非常に大きな入力であっても、再帰的な実装と一致しています。これが最終的なコードです。
そして、これが完全に更新されたソースです。