1
は、テキストやリンクレイヤのポート番号については、以下の仕様を検討:私のor-specは、指定されたspecの1つに対してのみ有効ですか?
(require '[clojure.spec.alpha :as spec])
(spec/def ::text (spec/and string? not-empty))
(spec/valid? ::text "a") ; => true
(spec/valid? ::text "") ; => false
(spec/def ::port (spec/and pos-int? (partial > 65535)))
(spec/valid? ::port 4) ; => true
(spec/valid? ::port 0) ; => false
(spec/def ::text-or-port (spec/or ::text ::port))
(spec/valid? ::text-or-port 5) ; => true
(spec/valid? ::text-or-port "hi") ; => false
それが唯一のポート番号ではなくテキストを受け入れ、いくつかの理由のために、なぜそれが可能でしょうか?