부작용을 피하고 자식 프로세스를 만들 수 있습니까? 예 :자식 프로세스 및 함수 프로그래밍 호출
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 있지만 불순한 기능의 코드를 최소화하려고 할 것이 부작용을 함수형 언어에서
을 가진 순수 함수가 아닙니다 기능이 불명확하다는 사실. 당신은 약 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, 당신의 대답은 일을 분명히합니다. –
무엇이 불변으로 여기에 있습니까? –
죄송합니다. 혼란 스러웠습니다. 나는 그 질문을 갱신했다. –
부작용은 디렉토리 내용을 인쇄하는 것입니까? –