3

次の簡単なコードがあります。

; No, test.core isn't the real namespace
(ns test.core
    (:gen-class)
    (:require [clojure.core.typed :refer [ann]]))

(defn -main
  ([]
    (println "Hello, World!"))
  ([x]
    (println "You gave me " x)))

-mainを使用して関数にどのように注釈を付けcore.typedますか?

4

1 に答える 1

4

-main関数には複数の実装があるため、Fn短い構文ではなく関数型 を明示的に使用する必要があります。次のようになります。

(ann -main
     (Fn [-> nil]
         [Any -> nil]))

関数型の構文の詳細については、core.typed wikiの関数エントリを参照してください。また、cfフォームの入力方法を示しているので、 も参照してください。

(clojure.core.typed/cf
  (fn ([] (println "Hello, World!"))
      ([x] (println "You gave me " x))))

;; => [(Fn [Any -> nil] [-> nil]) {:then tt, :else ff}]
于 2013-10-08T06:45:14.307 に答える