副作用を避け、子プロセスを作成することは可能ですか?例:子プロセスと関数プログラミングの呼び出し
from subprocess import call
def ls(directory):
return call("ls %s" % directory, shell=True)
関数型言語はどのようにこのような操作を行いますか?
ありがとうございました。関数型言語の子プロセスを作成し、指定されたもののようなものをやって
副作用を避け、子プロセスを作成することは可能ですか?例:子プロセスと関数プログラミングの呼び出し
from subprocess import call
def ls(directory):
return call("ls %s" % directory, shell=True)
関数型言語はどのようにこのような操作を行いますか?
ありがとうございました。関数型言語の子プロセスを作成し、指定されたもののようなものをやって
それは副作用を持っている純粋な機能ではありません
関数型言語で不純な機能がありますaswellが、それは不純な機能でコードを最小化しようとするだろう関数が明白でないという事実。あなたが例えば最も機能的な言語であることHaskellのを考慮するとおよそIO monads
を読み取ることができ、それが明示的にそれはその署名/宣言への副作用を持っていると言うcreateProcess
機能について
createProcess :: CreateProcess -> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
IOは、明示的にそれを言います
あなたがこのようなことをする必要がある場合は、このようにすることができます
import os
import subprocess
FNULL = open(os.devnull, 'w')
def ls(directory):
return subprocess.call(['ls',directory], stdout=FNULL, stderr=FNULL)
ありがとう@Sarathasp、あなたの答えは明らかにします。 –
ここで何を不変にしたいですか? –
申し訳ありませんが、私は混乱しました。私は質問を更新しました。 –
副作用はディレクトリの内容の印刷ですか? –