私はClojureが初めてです。ばかげた質問でしたらすみません!
項目の順序を気にしない場合は、ベクターまたはリストの代わりにセットを使用する必要がありますか? 順序が不要な場合、これら 3 つを決定する一般的な基準は何ですか?
私はClojureが初めてです。ばかげた質問でしたらすみません!
項目の順序を気にしない場合は、ベクターまたはリストの代わりにセットを使用する必要がありますか? 順序が不要な場合、これら 3 つを決定する一般的な基準は何ですか?
それは本当にアイテムをどのように使用するかによって異なります。
実際には、私が目にするほとんどの処理には、データを に変換するseq
処理が含まれているため、リストとベクトルの区別は、多くの場合、個人的な好みの問題です。
一般に、主な関心事が「これはこのグループに属しているか?」である場合は、セットが必要です。順序を保持しないだけでなく、セットは指定された値を 1 回だけ保持します。したがって、値の正確な配置に関心がある場合は、ベクターの方が適しています。主にメンバーシップのテストに関心がある場合は、セットの方が適しています。
はい、セットでご利用ください。他のもの (パフォーマンス、メモリ使用量など) を選択する非常に正当な理由がない限り、セットは正しい選択です。
プログラミングとは、主にコードを読む人間とのコミュニケーションであり、コンピューターとのコミュニケーションではないことを忘れないでください。セットを使用することで、要素の順序が無関係であることが完全に明確になり (また、値が重複することを期待していない)、読者があなたの意図とあなた自身の精神的な考え方を理解するのに役立ちます。