SOLIDは、機能的/命令的な領域でも良いアイデアであることがわかりました。
SRP-そもそも命令型プログラミングから「たった1つのことを行う」だけです。小さく、焦点を絞った機能を持つことは良いことです。
OCP-コードを変更せずに動作を変更できるようにすることは良いことです。関数型プログラミングでは、継承よりも高次の関数を使用しますが、原則は保持されます。
LSP -下回らないよう、いくつかのインターフェース契約によっては、ちょうどオブジェクト指向のような関数型プログラミングでは良いようです。ソート関数がコンパレーターをとる場合、「0は等しい、負の結果を提供するよりも小さい、正の結果よりも大きい」という振る舞いを期待します。
ISP-ほとんどの機能言語にはまだ構造体があります。関数が必要とするデータの最小セットを指定することは、依然として良い習慣です。データへの最も具体性の低いインターフェイスを必要とする(Tの列挙が同様に機能する場合にintのリストを使用する理由)は、依然として良い習慣です。
DIP-関数をハードコーディングして値を取得するのではなく、関数(またはそれらを取得するための高次関数)にパラメーターを指定することは、関数型プログラミングでもオブジェクト指向と同様に優れています。
また、オブジェクト指向プログラミングを行う場合でも、これらの原則の多くはオブジェクトのメソッドの設計にも適用されます。