小编Spl*_*aos的帖子

使用C++ lambda进行部分应用?

编辑:我在下面使用咖喱,但已被告知这是部分申请.

我一直想弄清楚如何在C++中编写咖喱函数,我实际上已经弄明白了!

#include <stdio.h>
#include <functional>

template< class Ret, class Arg1, class ...Args >
auto curry(  Ret f(Arg1,Args...), Arg1 arg )
    -> std::function< Ret(Args...) >
{
    return [=]( Args ...args ) { return f( arg, args... ); };
}
Run Code Online (Sandbox Code Playgroud)

我也为lambdas写了一个版本.

template< class Ret, class Arg1, class ...Args >
auto curry(  const std::function<Ret(Arg1,Args...)>& f, Arg1 arg )
    -> std::function< Ret(Args...) >
{
    return [=]( Args ...args ) { return f( arg, args... ); };
}
Run Code Online (Sandbox Code Playgroud)

测试:

int f( int x, int …
Run Code Online (Sandbox Code Playgroud)

c++ lambda currying c++11

17
推荐指数
4
解决办法
5371
查看次数

"cabal安装快乐"导致内存溢出.(GHC 7.8.2)

我一直试图让快乐正确安装,在过去几天,虽然我发现它具有挑战性的获得cabal install happy不只是错误(通过安装happy-1.19apt-get并添加/opt/happy/1.19.3/binPATH),现在它通过源运行,直到它到达ProduceCode(15/18)并且似乎进入无限循环.Ctrl+C当整个系统无响应时,它会累积内存,直到我点击或关闭电源.

我想我记得这根本不是GHC-HEAD的问题,但我不想使用头部,因为它似乎每隔几天更新一次,要求我不断重建我的包裹,除非有一个技巧我不要不知道从哪里迁移headhead+1.

$ ghc -v
Glasgow Haskell Compiler, Version 7.8.2, stage 2 booted by GHC version 7.4.1
Using binary package database: /opt/ghc/7.8.2/lib/ghc-7.8.2/package.conf.d/package.cache
Using binary package database: /home/house/.ghc/x86_64-linux-7.8.2/package.conf.d/package.cache
package oeis-0.3.5-26e4c8a4e89d20dbd9e2d89ad4774bd0 is unusable due to missing or recursive dependencies:
HTTP-4000.2.12-2793df5d0fb675f1a42bc04cfdf74851
hiding package Cabal-1.18.1.3 to avoid conflict with later version Cabal-1.20.0
hiding package Cabal-1.19.2 to avoid conflict with later version Cabal-1.20.0
wired-in package …
Run Code Online (Sandbox Code Playgroud)

haskell ghc cabal happy oeis

5
推荐指数
1
解决办法
264
查看次数

Haskell:MonadState如何运作?

http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-State-Lazy.html

instance (Monad m) => MonadState s (StateT s m) where
    get   = StateT $ \s -> return (s, s)
    put s = StateT $ \_ -> return ((), s)
Run Code Online (Sandbox Code Playgroud)

()在put的定义中做了什么?

monads haskell state-monad

2
推荐指数
1
解决办法
186
查看次数

标签 统计

haskell ×2

c++ ×1

c++11 ×1

cabal ×1

currying ×1

ghc ×1

happy ×1

lambda ×1

monads ×1

oeis ×1

state-monad ×1