필자의 함수가 머리에서 직접 패턴 매칭을한다는 것을 감안할 때 함수를 호출하지 않고 주어진 입력에 대해 일치하는 패턴이 있는지 확인하는 방법이 있습니까? 친절 match?
하지만 기능을 좋아해. 내가 when
에 대해 신경 쓰지 않고 투플 (tuples) 내부의 원자 또는 원자와 만 일치합니다.기능 헤드의 패턴이 일치하는지 확인하십시오.
def init(:ok) do
...
end
및
check(&init/1, :ok) # return true
check(&init/1, :other) # return false
나는 입력의 일부를 처리하는 함수 목록을 사용하여 GenServer에서 상태를 변경하고, 다른 사람을 무시하고있다. 각 함수는 하나의 튜플을 취해 함수 헤드가 일치하면 수정 된 상태를 반환하고 일치하지 않으면 상태를 반환합니다. 이 시도/구조 래퍼 함수가이 지금은 꽤되지 않습니다. 입력은 가변 길이 튜플이며 첫 번째 요소는 원자 식별자입니다.
이 작업으로 무엇을하려합니까? 좀 더 많은 맥락을 감안할 때 문제에 대한보다 솔직한 해결책을 제시 할 수 있습니다. –
@PatrickOscity가 업데이트되었습니다. 여전히 불분명한지 여쭈어보십시오. –
@FilipHaglund 기능 헤드가 기능을 실행하지 않고 일치하는지 확인할 수는 없지만 기존 도구로 동일한 목표를 달성 할 수있는 여러 가지 방법이있을 수 있다고 생각합니다. 더 많은 코드를 보여줄 수 있습니까? 네가하려는 일을하는 데 어려움을 겪고있다. | – whatyouhide