問題タブ [timtowtdi]
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.
perl - 非 Perl 開発者にとって効果的な Perl トレーニングとは?
私は Perl を長く使ってきたので、その特異性の多くが私の第二の天性になっています。新しいプログラマーが私たちのグループに参加するとき、彼らは Perl の経験がほとんど、またはまったくないことが多く、通常、彼らを (必要な範囲で) トレーニングするのは私の仕事です。Perl は初めてだが他の言語の経験があるプログラマーをトレーニングする際に、何に焦点を当てるべきか知りたいです (この質問は言語に依存しないことを意図していますが、私が一緒に働いたほとんどの開発者は Java 出身です)。
私にはいくつかのことが起こります:
- シジルの正しい使い方
- 参照/逆参照
- map、 grep、sortなどのリスト関数の使用
プログラマーが Perl に移行するのを支援する際に特に役立つと思われる点はありますか? 類似点または相違点、またはその両方を同等に強調しますか?
perl - 厳密に関して $a や $b のような変数を作成する方法はありますか?
Michael Carman のコメントに照らして、質問を書き直すことにしました。この編集の前に 11 のコメントが表示されていることに注意してください。また、私が求めていることを明確にする方法で質問を書いていないというマイケルの観察に信憑性を与えてください。
質問:モジュールをインポートするだけで、strict に関して持つ特別なステータスを偽装するための標準的な (または最もクリーンな) 方法は何ですか?
$a
$b
まず最初にいくつかのセットアップ。以下の作品:
もう 1 行追加すると、次のようになります。
コンパイル時にエラーが発生します。これは、見事な印刷コードが実行されないことを意味します。
コメントアウトすると正常にuse strict;
動作します。制限の外では、$a
主に、それらの名前と比較する 2 つの値を渡すという点$b
で特別です。sort
したがって、 と の主な機能上の違いは$a
、$b
たとえ Perl が「それらの名前を知っている」としても、ソートするとき、またはList::Utilのいくつかの関数を使用するときに、これを知っている方がよいということです。
strict を使用して、まったく新しい方法で特殊変数になる$a
場合のみです。$b
それらは、宣言されていないことを訴えることなく、厳密に渡される唯一の変数です。
:さて、私は厳密が好きですが、TIMTOWTDI (それを行うには複数の方法があります) が Perl のルール #1 である場合、これはあまり TIMTOWDI ではないことに気づきました。それはそれを言い、$a
特別$b
であり、それだけです。変数を使用したい場合は、宣言する必要はありませ$a
ん$b
。を追加して 3 つの変数が必要な場合$c
、突然、まったく別の方法があります。
ハッシュを操作$k
する際に$v
、より理にかなっている可能性があることを気にしないでください。
今、私は厳格なものを使用しています。しかし、私はただ、最もコンパクトな構文で見えるようにしたい$k
と思っています。そして、私はそれが単に見えるようにしたい$v
skim
私はこの質問を、黒魔術の方法を知りたくて尋ねているのではありません。以下の私の「答え」は、危険な Perl を十分に知っていることを知らせてくれるはずです。厳密に他の変数を受け入れる方法があるかどうか、または最もクリーンな解決策は何かを尋ねています。答えはノーかもしれません。そうであれば、TIMTOWTDI とは思えません。
ruby - Ruby で同じことを行うのに、わずかに異なる方法がたくさんあるのはなぜですか?
Rubyを学んでいます。私のバックグラウンドは C++/Java/C# です。全体として、私はこの言語が好きですが、同じことを達成するために非常に多くの異なる方法があり、それぞれがわずかに異なるセマンティクスを持っている理由について少し混乱しています.
たとえば、文字列の作成を考えてみましょう。''、""、q%、Q%、または単に % を使用して文字列を作成できます。一部のフォームは補間をサポートしています。他の形式では、文字列の区切り記号を指定できます。
文字列リテラルを作成する方法が 5 つあるのはなぜですか? 補間されていない文字列を使用するのはなぜですか? % 構文は、引用符で囲まれたリテラルよりもどのような利点がありますか?
Ruby の冗長性には価値があるに違いないことはわかっていますが、訓練を受けていない私の目ではそれがはっきりとわかりません。教えてください。
ruby - 何かをコーディングするために、同じように抽象的な構文のバリエーションをいくつか持つことの価値は何ですか?
私は現在Rubyについて読んでいます。それは素晴らしい言語だと思いますが、同じアクションをコーディングするために、構文がわずかに異なるだけの同等の方法が非常に多くあることに少し悩まされています。たとえば、unless conditional
ステートメントを書くことと完全に同等if !conditional
です。
私にとって、これは表現力を追加するものではなく、他の人のコードに従うのがより面倒になるだけです。私が見逃している利点はありますか (いくつかの構文キーワードが自分の好みに合わなかったために言語を拒否することは通常ないため、さまざまな好みに対応する以外に説得力がありません)?
おそらくすべての言語で、この例が他にもあります。私がこの例を使用しているのは、特に合理的な防御が欠けているからです。
ruby - 「Rubyには同じことをする方法が複数あります」-これはどういう意味ですか?
議論されているか、非常に明白な場合は、このトピックを自由に削除してください。私はC#のバックグラウンドを持っており、Rubyを学ぶことを計画しています。私がそれについて読んだすべては非常に興味をそそられるようです。しかし、私は、「1つのことを行うには複数の方法がある」というRubyのこの基本的な哲学について混乱しています。誰かがこの点を明確にするために2つまたは3つの簡単な算術または文字列の例を提供できますか?たとえば、構文や論理などについてです。
ありがとう
c# - IEnumerable で以前の値を合計する
私は一連の数字を持っています:
そして、それを新しいシーケンスに変換して、前の数字に番号を追加して新しいシーケンスを作成したいと考えています。
以下を思いつきましたが、状態変数「count」が嫌いです。Enumerable の値を操作せずに使用しているという事実も嫌いです。
他にどのように行うことができますか?