我发现的唯一的东西是Penumbra,它似乎包含了OpenGL 1.1,我至少不在乎.它实际上不需要做任何花哨的事情,LWJGL的包装器在一个命名空间中暴露OpenGL 3.3/core或OpenGL 4.x/core就足够了 - 我不介意一个更惯用的包装器,只要它不做任何立即模式绘图并支持GLSL 3.3我基本上很开心.
我真的很高兴使用vim + lein repl,但是因为有很多人一直说Emacs是Lisps的方法,所以我决定尝试一下.现在的问题建立一个Clojure的环境做所有花哨的东西,人们一直在谈论的 - 现在我设法安装Clojure的模式和nREPL和工作得相当好,但我需要得到REPL我Leiningen工作项目如果这个实验要去某个地方(如果这意味着我必须自己管理所有的依赖项(特别是类路径相关的),那么在编辑器中进行repl将毫无意义).这里有问题的一点是,我在网上看到的大多数文章都是
现在我正在寻找的是:
"某处"是"在标准库中或某些包中,这些包很小并且通用性足以使其成为相对无害的依赖".
import qualified Data.Map as M
import Data.Monoid
import Control.Applicative
newtype MMap k v = MMap {unMMap :: M.Map k v}
newtype MApplictive f a = MApplicative {unMApplicative :: f a}
-- M.unionWith f M.empty m = M.unionWith f m M.empty = m
-- f a (f b c) = f (f a b) c =>
-- M.unionWith f m1 (M.unionWith f m2 m3) =
-- M.unionWith f (M.unionWith f m1 m2) m3
instance (Ord k, Monoid v) => Monoid …Run Code Online (Sandbox Code Playgroud) 我已经阅读了netwire 快速入门,但我在设想整个事物在"真实"应用程序中的样子时遇到了问题.因为教程只涉及纯线,所以我对游戏特别感兴趣,但是我不介意别人.反应性香蕉的例子可能也会这样.他们应该只说明FRP如何有用.
我正在尝试在Haskell中使用并发进行特定的优化,其中只需要两个值中的一个,并且根据情况,任何一个可能比另一个更快.
我以为我可以用forkIO运行2个线程,然后等到一个值放在一个MVar中.这是一个我为此编写的简单测试:
import Control.Concurrent
main = do out <- newEmptyMVar
t1 <- forkIO (makeString out)
t2 <- forkIO (makeInt out)
v <- takeMVar out
killThread t1
killThread t2
case v of
Left s -> putStrLn s
Right i -> putStrLn $ show i
makeString out = do s <- return ( show (primes !! 10000))
putMVar out $ Left s
makeInt out = do i <- return 2
putMVar out $ Right i
primes = sieve [2..]
where sieve (x:xs) …Run Code Online (Sandbox Code Playgroud) 也就是说,按顺序评估子表单并返回最后评估值的表单,例如
(do (println "Hello World") 3) => 3
Run Code Online (Sandbox Code Playgroud) 我在几个地方读过std :: vector要求它的模板参数是默认的可构造的.今天我只是尝试了我的一个具有deleted默认构造函数的类,令我惊讶的是它似乎工作正常(使用std :: vector的默认构造函数).这是可移植的行为,还是这是gcc的STL的实现细节,我应该假设向量要求它的模板参数是默认的可构造的吗?
我需要处理很多比大(> 10 ^ 200)大的数字,所以我使用BigIntegers.我执行的最常见操作是将它们添加到累加器,例如:
BigInteger A = new BigInteger("0");
for(BigInteger n : nums) {
A = A.add(n);
}
Run Code Online (Sandbox Code Playgroud)
当然,为破坏性操作制作副本是非常浪费的(好吧,只要有足够大的缓冲区可用),所以我想知道Java是否可以以某种方式优化它(我听说有一个MutableBigInteger类没有被math.java暴露)或者我是否应该编写自己的BigInteger类.
当然答案是以某种方式传递/接受连续的内存块,所以问题更多的是关于如何做到这一点.现在我仍然可以通过在C端编写包装函数来避免这个问题,但这并不是一个永久的解决方案.
我看到了很多:
std::vector<Something> vec;
do_something_with_vec(vec);
Something *arr=&vec[0];
do_something_that_needs_carray(arr);
Run Code Online (Sandbox Code Playgroud)
我的意思是,一个向量可能会在内部使用一个数组,所以我明白为什么这个工作,我只是想知道这是否是定义的行为(比如,是一个实现者是否允许运行std :: vector的实现,这将是打破).
如果标准之间存在冲突,我对C++ 11标准所说的内容感兴趣.