我是Haskell的新手,几天前开始学习,我对要创建的函数有疑问。
我想制作一个函数来验证x是否为n的因数(例如:375具有以下因数:1、3、5、15、25、75、125和375),然后移除1,然后移除数字本身,并最终验证该列表中的奇数个数是否等于偶数个数!
我想到了制作这样的函数来计算第一部分:
factor n = [x | x <- [1..n], n `mod`x == 0]
Run Code Online (Sandbox Code Playgroud)
但是如果我在提示上提示的话Not in scope 'n'。想法是输入375这样的数字,以便计算列表。我做错了什么?我已经看到在书本中这样输入提示的功能。
然后,考虑到我所说的元素,我想到的是做尾巴,然后初始化列表。您认为这是个好主意吗?
最后,我想到了一个if语句来验证最后一部分。例如,在Java中,我们将执行以下操作:
(x % 2 == 0)? even++ : odd++; // (I'm a beginner to Java as well)
Run Code Online (Sandbox Code Playgroud)
然后,如果偶数=奇数,则表示所有条件均已验证(我们的偶数数量等于奇数)
但是在Haskell中,由于变量是不可变的,我该怎么做something ++的事情?
谢谢你提供的所有帮助 :)
我想制作bash脚本,向stdout发送一个只包含ASCII可写字符的文件映像.我的脚本应该只接收和接受一个包含应从/ dev/urandom读取的八位字节数的参数.因此,我需要从/ dev/urandom读取给定数量的八位字节以创建要发送到stdout的文件映像.我有这个:
!/斌/庆典
X = 1
如果[$ X -eq 0]则回显"错误:需要参数"
其他
strings/dev/urandom
回显结果科幻
基本上我正在检查是否有任何参数,如果有,请阅读dev/urandom.当然这只是一个草图.
我被告知有一个叫做字符串的命令可以从任何文件中读取和提取字符序列,但是我已经在互联网上查了一下,我找不到很多关于它的信息.
所以我的问题是:我如何读取/ dev/random参数中给出的八位字节数,以便我可以将它们放在stdout中(我知道如何放入stdout :))
我理解懒惰评估是什么,它是如何工作的以及它具有的优势,但是你能解释一下Haskell的严格评估是什么吗?我似乎无法找到关于它的更多信息,因为懒惰评估是最知名的.
他们每个人的好处是什么.什么时候严格评估实际使用?
我有一个按钮(在apDiv126中),点击时显示图像(在apDiv129中)
<div id="apDiv126"style="display:none"><input name="Yep" type="image" src="accept.png" onClick=toggle_div('apDiv129');time('apDiv129');"></div>
<div id="apDiv129"style="display:none"><img src="request confirmed.png" width="370" height="215"></div>
Run Code Online (Sandbox Code Playgroud)
单击该按钮时,它应显示图像(使用toggle_div),然后执行时间功能:
这是时间函数:
function time(id) {
var divelement = document.getElementById(id);
setTimeout(function(){
divelement.style.display = 'none'
}, 2);
}
Run Code Online (Sandbox Code Playgroud)
时间的推移应使图像在2秒后消失.但是,当我尝试我的网页时,它甚至不显示图像.toggle_div正在工作,因为当我time('apDiv129');从onClick中删除时,会出现图像.
我也尝试在超时匿名函数中调用toggle_div,但它也不起作用.
我的问题是:onClick按给定的顺序执行函数?当我打开页面时,是否有可能超时开始"倒计时"?