我想制作一个循环ListView.这意味着,它的行为有点像iO上的选择器小部件,所以当用户向上或向下滚动时,列表只是循环其内容.我想有人需要为此编写一些花哨的自定义适配器,但我不确定它是否可行.
Afaik,ListView需要事先知道适配器中包含的元素数量.例如,在这种情况下,这将是一个问题.
你对这件事有什么建议吗?
谢谢
这里是我认为scala中斐波那契的正确和有用的定义:
lazy val fibs:Stream[Int] = 0 #:: 1 #:: (fibs,fibs.tail).zipped.map(_+_)
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
fibs take 10 foreach println
0
1
java.lang.StackOverflowError
at scala.collection.mutable.LazyBuilder.(LazyBuilder.scala:25)
at scala.collection.immutable.Stream$StreamBuilder.(Stream.scala:492)
at scala.collection.immutable.Stream$.newBuilder(Stream.scala:483)
at...
Run Code Online (Sandbox Code Playgroud)
我猜zipped与流无法正常工作?关于如何使这项工作,或为什么这不(不应该?)工作的任何建议?
我看到这段代码生成斐波纳契数.
fibs = 1:1:(zipWith (+) fibs (tail fibs))
是否可以编写类似的样式代码来生成无限列表[1 ..]?
给出了一个例子
cyclic = let x = 0 : y
y = 1 : x
in x
Run Code Online (Sandbox Code Playgroud)
我试图以循环方式为我的问题定义一个列表,但是不能成功.我想要的是一个根据自身定义的列表,它在Hasekll中评估为[1 ..].
注:Haskell的[1..]计算结果为[1,2,3,4,5...],而不是[1,1,1...].
我想在Haskell中找到无限列表中的第一个匹配元素.
这段代码有效:
findPassword passwordHash = (head . filter (checkPassword passwordHash)) allStrings
Run Code Online (Sandbox Code Playgroud)
checkPassword真的很长(因为它是一个SHA1哈希)
checkPassword hash string = (sha1 string) == hash
Run Code Online (Sandbox Code Playgroud)
allStrings只是所有可能字符串的列表:
allStrings = [ c : s | s <- "" : allStrings, c <- ['a'..'z'] ++ ['0'..'9'] ]
Run Code Online (Sandbox Code Playgroud)
我希望这些代码并行运行,但如果我用parFilter替换过滤器:
import qualified Control.Parallel.Strategies as S
parFilter p = S.withStrategy (S.evalBuffer 1000 S.rseq) . filter p
Run Code Online (Sandbox Code Playgroud)
它不起作用......你有什么想法吗?这段代码也使用了大量内存,但这是另一个问题.这里有完整的脚本https://github.com/ThibaudDauce/habreaker
我正在制作一些带有无限滚动的jQuery跨浏览器库我工作得很好但是在iPhone上(我想也在iPad上)而不是相等的值我有一些不成比例的值不匹配
($(window).scrollTop() == ($(document).height() - $(window).height())
Run Code Online (Sandbox Code Playgroud)
我只是想达到滚动的是,从那以后,我可以援引AJAX脚本的末尾,还必须牢记后两个手指擦拭变焦,价值观发生变化.
我想询问是否存在setTimeout/clearTimeout的另一个实现来替换这种嵌套结构,避免回送
function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}
function stopCount()
{
clearTimeout(t);
timer_is_on=0;
}
Run Code Online (Sandbox Code Playgroud)
我读过太危险了,无法拥有无限的嵌套循环,因为在不确定的时刻,客户端会由于内存不足而崩溃.
我想问一下clearTimeout()方法会发生什么?它是否清除了内存堆栈?
我正在玩巧妙的方法为序列A003602创建一个python生成器
这似乎有效,但我无法弄清楚原因.在我看来它应该打无限递归.python是否在某些地方进行了一些我不认识的懒惰评估?
def N():
i=1
while True:
yield i
i+=1
def interleave(a,b):
def result():
x=a()
y=b()
while True:
yield next(x)
yield next(y)
return result
def RZ():
return interleave(N,RZ)()
gen=RZ()
Run Code Online (Sandbox Code Playgroud)
对我来说似乎是因为RZ立即调用interleave返回的方法,而该方法又调用b是RZ(在第一次调用yield之前),这应该是无限递归.但这实际上似乎有效.有谁能解释为什么?
所以,我正在制作一个小型的Web应用程序,以便在使用画布时变得更好,但是我被卡住了.我想要一个旋转的n边多边形(线条图已经有效).游戏循环遍历网格数组(网格上的每个点都包含Point()对象的子类),并在每个上调用tick()方法.一切正常,直到它碰到一个ShapePoint()对象(中间的鼠标放在画布上).ShapePoint的tick()方法在某种程度上是一个无限循环.如果你把一个console.log("hi")放在里面,它会给你大约2000条"hi"消息,所以它正在工作(理论上).有趣的是,尽管它正在循环通过stoke(),但没有任何事情发生!
//################################################################
// THIS IS THE PROBLEM CLASS.
// So pretty much, when the game loop calls the tick() funciton
// of ANY ShapePoint object, everything hangs. The game is still
// looping through the ENTIRE tick() function (put console.log()
// functions in and you'll see what I mean) continually, but the
// effects it is supposed to display aren't shown.
//
//################################################################
function ShapePoint(x, y, sides) {
//position variable
this.positionOnCanvas = [x, y];
//number of sides
this.N = sides; …Run Code Online (Sandbox Code Playgroud) 我对Haskell还是很陌生,并且正在尝试解决以下问题:
我有一个函数,该函数生成无限长的字符串,这些字符串的长度不同。但是一定长度的字符串数量受到限制。
现在,我要提取具有一定长度n的列表的所有子字符串。不幸的是,我做了很多研究,尝试了很多东西,但对我没有任何帮助。
我知道这filter()行不通,因为它会检查列表的每个部分并导致无限循环。
这是我生成无限列表的函数:
allStrings = [ c : s | s <- "" : allStrings, c <- ['R', 'T', 'P']]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了:
allStrings = [x | x <- [ c : s | s <- "" : allStrings,
c <- ['R', 'T', 'P']], length x == 4]
Run Code Online (Sandbox Code Playgroud)
并没有终止。
谢谢你的帮助!
我无法理解有关 Prolog 的这个问题。问题如下:
选择以下所有具有无限数量解决方案的目标。
以下是可能的答案:
append([a,b,c,d], Y, Z)
append(X, Y, X)
append(X, [a,b,c,d], Z)
append(X, Y, [a,b,c,d])
Run Code Online (Sandbox Code Playgroud)
显然,正确答案是2和3,但我不知道为什么1不是也是正确的-不会有对无限的可能性Z,因此也Y?另外,为什么 2 是正确的,因为第一个参数和第三个参数(“结果”)是相同的?听起来Y可能只是[]。
非常感谢!