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 中的Functions条目,了解有关函数类型语法的更多详细信息。另外,看看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 回答