首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Clojure,懒惰的评估问题

问题:Clojure 中,如何避免懒惰的评估问题?

答案:Clojure 中的懒惰评估问题可以通过使用 delayat 函数避免。delay 函数可以使得其参数在一段时间后执行,而 at 函数可以指定一个时间后执行。

例如,下面的代码中,如果 x 是一个无法解析的字符串,则在 when 语句中,x 的值会被设置为 nil,并且 x 的值不会发生变化,直到下一次 when 语句被执行时,才会重新进行评估:

代码语言:txt
复制
(when (or (not (string? x)) (resolve x))
  (println x))

如果使用 delayat 函数,则可以避免这种情况:

代码语言:txt
复制
(delay (when (or (not (string? x)) (resolve x))
          (println x)))

在上面的代码中,如果 x 是一个无法解析的字符串,则在 when 语句中,x 的值会被设置为 nil,并且 x 的值不会发生变化,直到下一次 when 语句被执行时,才会重新进行评估。

需要注意的是,使用 delayat 函数时,需要将表达式放在 delay 函数的括号中,并且需要加上括号,否则会报错。例如,下面的代码会报错:

代码语言:txt
复制
(delay (when (or (not (string? x)) (resolve x))
          (println x)))

而下面的代码则不会出现错误:

代码语言:txt
复制
(delay[(when (or (not (string? x)) (resolve x))
          (println x)])

希望这个答案能够帮助你解决 Clojure 中的懒惰评估问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

懒惰力量

参会总结我过两天再写,很多思想需要时间沉淀。) 前段时间写了篇「永恒不变魅力」,介绍了immutability,很多读者表示喜欢这样文章。...这篇文章继续走标题党路线,给大家奉上不是鸡汤,而是正儿八经技术文章,讲的是Lazy evaluation。 在大家熟悉编程语言中,调用一个函数,系统会老老实实返回调用结果。...Lazy evaluation另一个极大好处是很容易并发。既然计算细节被包裹起来,那么,计算本身还被限定在当前上下文,或者当前vCPU完成么? 显然不必。...最爽是,程序员不用纠结任何细节。如果相同异步处理要自己实现,可能需要一页纸代码。...小结一下,lazy evaluation: 把计算和计算发生时间decouple,避免了不要要计算 把计算和计算发生空间decouple,提供了并发可能 回过头来我们再好好想想这里处理问题思路

79080
  • 懒惰算法—KNN

    总第77篇 本篇介绍机器学习众多算法里面最基础也是最“懒惰算法——KNN(k-nearest neighbor)。你知道为什么是最懒吗?...该算法常用来解决分类问题,具体算法原理就是先找到与待分类值A距离最近K个值,然后判断这K个值中大部分都属于哪一类,那么待分类值A就属于哪一类。...1、K值选取 K值选取将会对KNN算法结果产生重大影响,下面通过一个简单例子说明一下:如下图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?...训练算法:KNN没有这一步,这也是为何被称为最懒算法原因。 测试算法:将提供数据利用交叉验证方式进行算法测试。 使用算法:将测试得到准确率较高算法直接应用到实际中。...06|最后: 上面python实现过程中涉及一些知识点: pandas数据转换成numpy,df.matrix() matplotlib中文显示乱码问题 列表生成式 np.tile()函数 np.sum

    1.8K50

    优秀程序员,必须懒惰

    理想程序员,和理想建筑师、理想财务师、理想按摩师没有任何差别,他们本质上都是一群手艺人。我相信理想程序员人人皆可成为。...平庸程序员编写腐烂代码,没有规范和一致性,固守旧世界语言,还好谈论大架构和性能,说比做漂亮。...而毫无例外,他们认定技术没有出路,做产品、营销和管理是更高大上手艺,而他们当中 99%,又会自然流露出自己恰巧具备了那方面的天赋,至于进程为什么会崩溃这样问题是不屑于去了解。...当面对一个未知问题时,如何定位复杂条件下核心问题、如何抽丝剥茧地分析问题潜在原因、如何排除干扰还原一个最小可验证场景、如何抓住关键数据验证自己猜测与实验,都是体现程序员思考力最好场景。...理想程序员会着力找寻有效资料保存方式,把工作里灵光闪现写下代码、脚本、配置、经验等短片段保存起来,以便任何时候都能复查。 理想程序员必须懒惰

    55240

    ​分类问题评估指标一览

    前言 最近分类问题有点多,但对一些指标依旧有模糊地方(虽然做了笔记), 事实证明, 笔记笔记,没有进到脑子里呀。...因此,我想着肯定有跟我一样半生半熟小伙伴在分类指标这块依旧有迷惑,毕竟常用几个大多数情况下就够用了, 这篇文章就主要讲一讲分类评估指标。...四、F1-Score F1-Score 能够很好评估模型,其主要用于二分类问题, 计算如下: ? 而 更一般有 ? : ? 其实, ?...而对于 Micro 来说,其考虑到了这种样本不均衡问题, 因此在这种情况下相对较佳。...[2] Micro Average vs Macro average Performance in a Multiclass classification setting> [3 机器学习性能评估指标

    65830

    如履薄冰 —— Redis懒惰删除巨大牺牲

    之前我们介绍了Redis懒惰删除特性,它是使用异步线程对已经删除节点进行延后内存回收。但是还不够深入,所以本节我们要对异步线程逻辑处理细节进行分析,看看Antirez是如何实现异步线程处理。...懒惰删除最初实现不是异步线程 Antirez实现懒惰删除时,它并不是一开始就想到了异步线程。最初尝试是使用类似于字典渐进式搬迁那样来实现渐进式删除回收,在主线程里。...比如对于一个非常大字典来说,懒惰删除是采用类似于scan操作方法,通过遍历第一维数组来逐步删除回收第二维链表内容,等到所有链表都回收完了,再一次性回收第一维数组。...但是这里有一个我们没看到trick。那就是底层字符串对象被共享了。 ? 为什么对象共享是懒惰删除巨大障碍呢?因为懒惰删除相当于彻底砍掉某个树枝,将它扔到异步删除队列里去。...执行懒惰删除时,redis将删除操作相关参数封装成一个bio_job结构,然后追加到链表尾部。异步线程通过遍历链表摘取job元素来挨个执行异步任务。

    49210

    梯度下降法及回归问题评估

    前言 ️️上期我们介绍了损失函数,这期我们主要掌握损失函数优化算法以及回归问题评估,简单来说就是测评模型预估好坏 学习目标 掌握梯度下降算法原理 掌握梯度下降法优化损失函数原理 掌握常用回归问题评估方法应用...,而使用假设函数;损失函数,为了评估模型拟合好坏, 通常用损失函数来度量拟合程度,损失函数极小化,意味着拟合程度最好,对应模型参数即为最优参数。...在SG方法中,虽然避开了运算成本大问题,但对于大数据训练而言,SG效果常不尽如人意,因为每一轮梯度更新都完全与上一轮数据和梯度无关。...随机平均梯度算法克服了这个问题,在内存中为每一个样本都维护一个旧梯度,随机选择第i个样本来更新此样本梯度,其他样本梯度保持不变,然后求得所有梯度平均值,进而更新了参数。...如此,每一轮更新仅需计算一个样本梯度,计算成本等同于SG,但收敛速度快得多。 其迭代形式为: 4.回归问题评估  ✒️不同于类别预测,不能苛刻回归预测数值结果要严格和真实值一致。

    10610

    评估归因模型供应商6个问题

    译者:互联网数据官志愿者 王全鹏 前言:如何选择正确归因模型来进行营销效果评估?如何评估归因模型供应商?...专栏作家 Alison Lohse 给出了6个问题帮你理清思路,并且避过归因模型那些坑。 ? 有些公告比较棘手。FaceBook将会因为其错误使用视频广告效果评估指标而被起诉。...我想答案仍然是肯定,因为真相终将无法被隐藏,广大营销界人士需要真相并且有权了解真相。 提出正确问题,会帮助你更接近事情本质,尤其是对于营销效果评估建模来说,此点尤为重要。...这里有一个问题列表,可以用来向归因模型供应商和数据科学家提问,以便系统、深入了解归因相关的话题。 问题1: 模型使用了什么算法?...如果砍掉电视广告上预算,对整体营销组合又有什么影响? 上面提到那些算法,能够帮助我们统筹考虑季节性因素和渠道间相互影响因素。由此也带来了第二个问题问题2:同时使用了多少种算法?

    1.1K140

    python正则表达式懒惰匹配和贪婪匹配说明

    第一次碰到这个问题时候,确实不知道该怎么办,后来请教了一个大神,加上自己理解,才了解是什么意思,这个东西写python会经常用到,而且会特别频繁,在此写一篇博客,希望可以帮到一些朋友。...例:一个字符串 “abcdacsdnd” ①懒惰匹配 regex = “a.*?d” ②贪婪匹配 regex = “a....d" print("懒惰匹配 = " + regexL) regL = re.compile(regexL) listL = re.findall(regL, str) print("懒惰匹配结果")...结果分析: 懒惰匹配,匹配成功两次,一次abcd,一次acsd,匹配到满足条件abcd就停止了此次匹配,不会干扰后面的继续匹配。...以上这篇python正则表达式懒惰匹配和贪婪匹配说明就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.9K10

    机器学习分类问题:9个常用评估指标总结

    你好,我是zhenguo 对机器学习评估度量是机器学习核心部分,本文总结分类问题常用metrics 分类问题评估指标 在这里,将讨论可用于评估分类问题预测各种性能指标 1 Confusion Matrix...这是衡量分类问题性能最简单方法,其中输出可以是两种或更多类型类。...: -真阳(TP)− 当数据点实际类别和预测类别均为1 -真实阴(TN)− 当数据点实际类和预测类都为0 -假阳(FP)− 当数据点实际类别为0,预测数据点类别为1 -假阴(FN)− 当数据点实际类别为...2 Accuracy 它是分类算法最常见性能度量。它可以被定义为正确预测数量与所有预测比率。...8 AUC (Area Under ROC curve) AUC(曲线下面积)-ROC(接收器工作特性)是基于不同阈值分类问题性能指标。顾名思义,ROC是一条概率曲线,AUC衡量可分离性。

    1.2K10

    SAP 物料评估类型”和“评估类别”

    SAP系统提供“分割评估”(SplitValuation)功能是解决此类问题完美解决方案。 什么情况下将启用“分割评估”呢?...为了简便说明分割评估作用,本文仅说明“自制品”与“外购品”成本不同,如何进行成本核算管理问题。...,并选择相应帐户分类参考参数(与评估类相关),评估类型是评估类别的细分); (3)定义“评估类别”(ValuationCategory)(分割评估标准,将其中评估类型与相应工厂激活); (4)定义“...”为自制品物料主数据(其评估级别与价格控制据需要填制); (3)定义“评估类型”为外购品物料主数据(其评估级别与价格控制据需要填制); 注:前台操作第一步为第二步、第三步奠定基础,起作用将是各制带评估类别的物料...,在入库、消耗、出库等过程中,将与评估类型(如本文中自制品和外购品)自动关联,进而与各自成本相关,实现同一物料不同成本管理功能。

    8.1K43

    利用人性弱点互联网产品(五)懒惰

    就像之前所说那样,懒惰是人天性,一切让事情变得更加简单快捷产品或服务都在或多或少都在利用这个天性,因为凡是优秀用户体验,必定是满足人性懒惰。...食 找餐馆 这个就不多说了,一直走得很慢大众点评可谓是抓到了那些除了找吃和上厕所外基本不会动弹几下懒人硬需求。...汽车这个作为出行根本似乎也正在变得简单操作化(Google无人驾驶车已经上路了!)。更多请详见极客公园专题极客眼中互联网汽车。...有了这些应用,妈妈再也不用担心懒惰我因为不记住课表而被点名了。 懒惰与懒人 ?...真正利用人性弱点懒惰应当是让机器和算法去尽量替代人类,让生活变得更加智能化更加自动化,以此让人们省去某些不必要无用功,而不是让人本身变得懒惰。因此在这个过程中不要忘记躯体运动和大脑思考。

    74530

    主机安全风险评估类型 评估工具

    在实际使用中难免会遇到一些病毒,所以大家采购时会有一些主机安全风险评估,会选择一些相对平稳主机,以免后期运用造成数据丢失和工作效率低下问题。...安全风险评估和工具 电脑使用现在已经很普遍了,使用电脑就会有一些隐私数据,想达到数据安全以及防止数据安全性,我们要对主机进行一个安全风险评估。安全风险评估分为哪些呢?...安全评估要做到数据安全、应用安全、主机安全、网络安全、物理安全等。在保证自身安全情况下,可以保证上层安全能力。减少对数据安全侵害。...风险评估一方面是对安全手段评估,另一方面要对实际安全效果评估。要想达到这种目的,我们要通过安全扫描、手工检查、渗透测试、安全审计、安全策略等方法进行安全风险评估。...企业更要有安全意识,把基础网络和重要信息制度输入给员工,结合开展风险评估、应控等形式提高基础网络和信息系统维护。

    1.1K30

    评估意义

    这一期主题是体系评估,那么这里其实评估不仅仅是安全体系评估,还有业务评估、风险评估、设备评估、人员评估等等。而且主要是涉及中层工作。 评估意义是什么?...我不知道该怎么说这个问题,但是如果中层一句话,采用项目制,每个参与项目的人进行成本控制,谁控制越好,谁到最后拿越多。...(2)运营难度 业务在搭建好之后其实最重要就是运营,确实不管是高层还是中层都会关心业务在运行期间不要出现问题,这与成本把控同样有所联系,为了不出问题,需不需要投入成本?...(2)时效性评估 时效性评估主要评估整个业务体系持续时间与设备投入时间比较,防止因设备老化产生问题。...当然能完成以上任务必然会涉及到专业知识,要有专业知识,要有实战经验,这不仅仅体现在安全从业者,应当是每位从业者都面临问题

    95710

    识别不出团队能力高低强弱,是管理者懒惰

    比如技术总结评估方式通常以项目为主,如果他是一个架构部门负责人,他需要告诉我,最开始拟定目标和架构升级方法,以及他解决了什么问题,为公司做了多少底层相关工作。...作为管理者,你首要任务是认人和用人,需要认清这个人本身能够完成工作量和他能够完成工作标准,不要用自己纬度去评估,而是要很明确地评估出这个人能做什么事。...另外也需要评估这个人投入度和他自己对未来期许,如果他本身就是个“老油条”,用任何方式可能都解决不了问题,只是甩了个锅,让你来调解一下,那你就必须得接受他这样状态,后期用考核标准,或者用其他方式来解决掉他问题...我个人一个经验是,理论上来说,所有人在任何一个工作上面,都有可能出现高低强弱,如果你不能识别出来这些高低和强弱,那是你管理懒惰。...于游:很多东西不代表新就是好,我们需要有个明确概念,就是即使它新,它能解决掉以前一些问题,但它会产生一些新问题。它能不能适用到你现在业务场景中去?这是需要非常细致评估

    36010

    解决Xshell 5评估过期,需要采购,不能使用问题

    Xshell客户端软件相信很多人都使用过,因为用它远程连接linux系统非常方便,Xshell是一款强大安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台TELNET...那么当你有一天打开Xshell客户端时候,发现如下弹窗怎么办呢? 常见思路: 1.我直接卸载了再网上重新下载,然后重新安装,不好意思,结果还是一样提示:“您Xshell评估期已过”。...2.抱着试试看态度点击“采购”按钮,那么就是如下显示: 3.换一款客户端软件,但是Xshell实在是太好用了,你会不习惯问题来了,那么像上面的情况到底有没有解决方法呢?...2.进入到“Free License”选项卡,选择Xshell 5图标下面的“Download”按钮 3.填写一份评估用户表格,许可证类型选择“家庭和学校用户”,其中*是必填项,另外电子邮箱地址一定写正确可以打开...4.打开上面填写电子邮箱会受到一封标题为“Xshell 5 download instruction”邮件,里面有具体下载链接。

    1.7K10

    如何使用Solitude评估应用程序中用户隐私问题

    关于Solitude Solitude是一款功能强大隐私安全分析工具,可以帮助广大研究人员根据自己需要来进行隐私问题调查。...无论是好奇新手还是更高级研究人员,Solitude可以帮助每一名用户分析和研究应用程序中用户隐私安全问题。...值得一提是,Solitude因在一个受信专用网络上运行,即用户需要在私有可信网络上运行该工具。...因为证书绑定是一种安全机制,可确保应用程序与之通信服务器是其预期服务器。但是,Solitude目前还不支持证书绑定绕过。...数据库配置 我们还需要修改Solitude数据库默认密码,编辑.env文件中密码即可。 项目地址 Solitude:【https://github.com/nccgroup/Solitude】

    1.1K10

    又是模型评估?到底怎么评估?『附 AUC 评估三计算方法』

    前面一节提到了模型评估指标中 ROC 详细概念和四个常见问题,以后在遇到 ROC 想必再也不会发懵了:聊聊模型评估事儿,附 roc 常见四个灵魂发问 但是一般在说到 ROC 时候,就会不自觉地提到...TPR=FPR,相当于抛一枚均匀硬币,正面朝上概率和反面朝上概率总是相等。...如果想要正面朝上概率大一些,对应就是红虚线上方任一点,也就是预测正确概率要大于预测错误概率。...需要注意是,AUC 计算精度与阈值精度有关,如下图: ? 很明显,左图精度是不如右图,对应 AUC 计算中如果阈值取值越多,结果精度越高。...+(rank_M-1),对应上例中 (4-2)+(3-2+1)=4 上式整体结果再除以 M×N 得到就是正类样本得分大于负类样本得分占整体比例,公式为: 同样,当两个样本得分相等时,无论是同类

    2.4K10
    领券