javascript中的函数数据类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript中的函数数据类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1134字,纯文字阅读大概需要2分钟。
内容图文
如何在javascript中构建函数和递归数据类型?
我希望能够做一些像ML这样的事情:
datatype binary_node = Node of binary_node*binary_node
| Lead of int
前段时间我参加了一个函数式编程课程 – 由于一些随机的原因,这个课程在Scheme中,我们通过制作数据类型来构建数据类型,从数据类型的名称开始,然后是“有效负载”,这是在Javascript中做函数式编程风格的数据类型的方法?
construct_node(n1,n2) ->
("Node", n1, n2).
construct_leaf(int_value) ->
("Leaf", int_value).
然后是类型检查器:
is_node(n) ->
if (n[0] == "Node") ->
is_binary_tree(n[1]) and is_binary_tree(n[2])
else
false
is_leaf(l) ->
if(l[0] == "Leaf") ->
is_integer(n[1])
else
false
is_binary_tree(t) ->
is_node(t) or is_leaf(t)
在javascript中最聪明的方法是什么?
解决方法:
JavaScript通常以duck typed方式使用.这样,您就不需要定义任何特殊的数据类型.具有属性node1和node2的任何对象都可以被视为二叉树节点.
var n = {
node1: {
node1: 456,
node2: 789
},
node2: 1002
};
function isNode(x) {
return x && isBinaryTree(x.node1) && isBinaryTree(x.node2);
}
function isLeaf(x) {
return typeof x === 'number';
}
function isBinaryTree(x) {
return isNode(x) || isLeaf(x);
}
请注意,上述函数用于递归检查整个树的完整性,而不是在遍历期间逐个节点区分.
内容总结
以上是互联网集市为您收集整理的javascript中的函数数据类型全部内容,希望文章能够帮你解决javascript中的函数数据类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。