在使用函数式语言之后,我开始在Java中使用更多的递归 - 但是语言似乎有一个相对较浅的调用堆栈,大约1000.
有没有办法让调用堆栈更大?就像在Erlang中一样,我可以创建数百万次调用的函数吗?
当我做项目欧拉问题时,我越来越注意到这一点.
谢谢.
在Haskell中,如何基于第n个Fibonacci数等于第(n-2)个Fibonacci数加上第(n-1)个Fibonacci数的属性生成Fibonacci数?
我见过这个:
fibs :: [Integer]
fibs = 1 : 1 : zipWith (+) fibs (tail fibs)
Run Code Online (Sandbox Code Playgroud)
我真的不明白,或者它是如何产生无限列表而不是包含3个元素的列表.
我如何通过计算实际定义来编写haskell代码,而不是通过使用list函数做一些非常奇怪的事情?
在我的Swing应用程序中,我希望能够在装饰和未装饰之间切换,而无需重新创建整个框架.但是,在setUndecorated()框架可见后,API不允许我调用.
即使我打电话setVisible(false),isDisplayable()仍然会返回true.API说,使帧不可显示的唯一方法是重新创建它.但是,我不想重新创建框架只是为了关闭一些标题栏.
我正在制作一个可在全屏和窗口模式之间切换的全屏应用程序; 它应该能够在保持状态等的同时切换.
如何在框架可见后执行此操作?
为什么该函数java.io.File.toURL()已弃用?我需要传递一个Toolkit.createImage()接受URL对象的URL.Javadoc建议我使用File.toURI().toURL().然而:
C:\Documents and settings\Administrator\...
变为:
C:\Documents%20and%20settings\Administrator\...
这显然是一个无效的文件位置.我发现File.toURL()创建了URL而没有转义,但它已被弃用.虽然它有效但我害怕使用已弃用的函数.什么是不被弃用的方法做同样的事情?
编辑:现在我的代码看起来像:
spriteImage1 = tkit.createImage(new File("./images/sprite1.png").getCanonicalFile().toURL());
Run Code Online (Sandbox Code Playgroud)
编辑:我需要从.jar文件外的文件夹创建一个图像.我需要一个相对位置("./ images/sprite1.png").当我尝试为它提供相对路径时,方法createImage(String)会抛出异常.
我可以在Haskell中做这样的事情:
#!/usr/bin/runghc
main=putStrLn "Hello World"
Run Code Online (Sandbox Code Playgroud)
然后我可以运行它 ./hello.hs
我的问题是,为什么忽略第一行?haskell中的注释开头,--但第一行似乎仍然被忽略.它甚至加载到ghci.这个技巧也适用于Python和Perl.
但是当我在Java中做类似的事情:
#!/usr/local/jdk1.6.0_13/bin/javac
...
Run Code Online (Sandbox Code Playgroud)
Javac给了我一个编译器错误.
那么这是如何工作的呢?我将如何使用Java?
谢谢.
每次我尝试使用新语言,编译器,解释器,工具或其他任何东西,并且我想从命令行运行它时,我将不得不转到System并更改我的PATH变量.但是,放置怪物字符串的框只包含一行文本框.我经常发现自己必须将PATH字符串复制/粘贴到记事本中才能编辑它 - 它已经超过半页了.现在我已经计算了大约30个不同的路径URL.
是否有更好的方法来管理路径而不是将所有路径都压缩成一个字符串?我正在考虑使用SUSE进行开发,因为我的PATH非常混乱.
键入代码时,我通常会关闭括号,返回内部,外出,键入分号等:
我可以从(|是插入符号)开始:
System.out.println()|
Run Code Online (Sandbox Code Playgroud)
然后左转:
System.out.println(|)
Run Code Online (Sandbox Code Playgroud)
然后这个:
System.out.println(foo()|)
Run Code Online (Sandbox Code Playgroud)
再次回溯空间:
System.out.println(foo(|))
Run Code Online (Sandbox Code Playgroud)
输入引号类似:
System.out.println(foo(""|))
Run Code Online (Sandbox Code Playgroud)
...等等.
我的右手在主行和箭头键之间不断移动.我尝试过vim,虽然我知道基础知识,但对我来说仍然感觉很尴尬.
我该怎么做?我应该从左到右键入(打开括号,然后是内容,然后关闭括号,然后是分号)?
谢谢.
对于刚刚开始编程的人,你会建议使用vim/emacs,还是应该使用某些IDE?像vim/emacs更适合更高级用户而不是初学者?我只是想知道,因为我想让我的一些朋友去编程.
可能类似的问题:
synchronized关键字添加到我的每个方法中.那没用.然后我将volatile关键字添加到每个字段.问题似乎只是解决了问题.
经过一些实验,我发现负责的领域是一个GameState跟踪我的游戏当前状态的对象,可以是正在播放也可以是忙碌.忙时,游戏会忽略用户输入.我所拥有的是一个不断更改state变量的线程,而Event线程读取state变量.但是,在一个线程更改变量后,另一个线程需要几秒钟来识别更改,这最终会导致问题.
它是通过制作状态变量来修复的volatile.
为什么volatile默认情况下不是Java中的变量,以及不使用volatile关键字的原因是什么?