内容简介:翻译自:https://stackoverflow.com/questions/23282683/is-clojure-uni-typed
的迷人作品.其中写道:
And this is precisely what is wrong with dynamically typed languages: rather than affording the freedom to ignore types, they instead impose the bondage of restricting attention to a single type! Every single value has to be a value of that type, you have no choice!
这 has come to mean uni-typed languages .(单一语言).
现在Clojure claims to be a dynamic language :
Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR, and JavaScript). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language – it compiles directly to JVM bytecode, yet remains completely dynamic . Every feature supported by Clojure is supported at runtime.
“动态”意味着“可以在运行时与之交互”,而不是“没有类型”.
现在静态和动态之间的关键区别似乎是“我可以在编译时遇到类型失败吗?”
如果我写下面的Clojure代码:
(deftype circle-type [radius] ) (deftype square-type [side-length]) (defn def-check-type [new-symbol-type existing-symbol] (let [existing-symbol-type (type existing-symbol)] (cond (= new-symbol-type existing-symbol-type) (def new-symbol existing-symbol) :else (str "types didn't match: " new-symbol-type " : " existing-symbol-type)))) (println (def-check-type circle-type (square-type. 2)));)
然后在Leiningen编译它:
lein uberjar
然后我得到以下内容:
$lein uberjar Compiling clojure-unittyped.core types didn't match: class clojure_unittyped.core.circle-type : class clojure_unittyped.core.square-type
在动态语言中,这似乎是编译时的类型失败.
我的问题是:Clojure Uni-Typed?
编辑 – 我知道 core.typed – 这是一项很棒的工作.我问这个问题是分开的.
的单类型分类在实践中并不是很有用.
单类型理论很少揭示动态类型语言中编程的本质;它主要用于证明类型理论中存在“动态”类型.
像 Typed Racket 这样的项目被发明,正是为了发现和模拟 程序员 在这些语言中使用的隐式类型信息.通常类型都非常准确,并且表明还有很多东西比满足眼睛要多.
翻译自:https://stackoverflow.com/questions/23282683/is-clojure-uni-typed
以上所述就是小编给大家介绍的《动态 – Clojure Uni-Typed?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)
- 动态代理三部曲(一):动态代理模式及实现原理
- 你必须会的 JDK 动态代理和 CGLIB 动态代理
- 彻底搞懂jdk动态代理并自己动手写一个动态代理
- Android程序员必会技能---运行时动态生成类---之动态代理
- 安卓动态加载技术
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Chinese Authoritarianism in the Information Age
Routledge / 2018-2-13 / GBP 115.00
This book examines information and public opinion control by the authoritarian state in response to popular access to information and upgraded political communication channels among the citizens in co......一起来看看 《Chinese Authoritarianism in the Information Age》 这本书的介绍吧!