4 is not 3 or 4
그냥 글로 읽으면 3혹은 4가 아니어야 true인데 4이므로 false가 나와야 할거같은데 true로 뜬다.
코드가 읽는건 3이 아니거나 4일경우 true인것이었다. => 4 is (not 3) or (4)
3혹은4가 아님을 의도하려면 4 is not (3 or 4) 혹은 4 is not 3 and not 4 로 표현해야했다.
가독성을 위해 코드표현을 최대한 자연어에 가깝게 만드니 자연어에서 쉽게 발생하는 중의적 표현때문에 오히려 코드를 자연스레 오해할 여지가 생기게 되었다.
논리연산을 되도록 패턴매칭으로 바꾸고 있었는데 좀더 공부하고써야할듯
댓글 0