我已经定义了一个代表树的新数据类型.我还实现了一个函数walk来遍历树的所有元素,函数的功能版本是正确的但不是他的monadic版本walkM.
module Hdot where
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
data RDoll a = Null | RDoll a [RDoll a] deriving (Show)
test :: RDoll Int
test = RDoll 1 [RDoll 2 [Null], RDoll 3 [RDoll 4 [Null]]]
walk :: (a -> b) -> RDoll a -> [b]
walk f Null = []
walk f (RDoll x rds) = ((f x): (concatMap (\x -> walk f x) rds))
walkM :: (Monad m) …Run Code Online (Sandbox Code Playgroud) Monetdb是否支持像concat_wsPostgresql(http://www.postgresql.org/docs/9.1/static/functions-string.html)中的字符串函数?
编辑:Monetdb参考
我查看关于支持的操作的Monetdb参考,但没有任何与String函数相关的内容.
我已经编写了这个简单的模块来处理设备并调用其某些电源管理方法,例如.suspend和.resume。在初始化时,模块会简单查找特定设备并尝试调用其方法。
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/pci.h>
static int __init mfps_driver_init(void){
struct pci_dev *dev = NULL;
struct pci_driver *driver = NULL;
struct device *device = NULL;
dev = pci_get_device(0x8086, 0x15a2, NULL);
if((dev == NULL) || (dev == 0)){
printk(KERN_INFO "LEONZO: NOTHING FOUND SIZE %ld\n", sizeof(dev));
} else {
driver = dev->driver;
printk(KERN_INFO "LEONZO: I FOUND THE DEVICE OF THE SIZE %ld\n", sizeof(dev));
printk(KERN_INFO "LEONZO: HERE IS ITS DRIVER NAME %s\n", driver->name);
printk(KERN_INFO "LEONZO: CALLING …Run Code Online (Sandbox Code Playgroud) 我想删除Data.Map匹配特定条件的所有元素.我们说foobar是这个函数,这是他需要的行为:
foobar :: (a -> Bool) -> Map k a -> Map k a
foobar (>= 20) $ fromList [("john",3),("sasha",8),("mary",33),("philip",20)]
-- the expected result is fromList [("john",3),("sasha",8)]
Run Code Online (Sandbox Code Playgroud)
谢谢你的回复!
我正在使用haskell进行解析,我想解析以这种方式表示的时间戳值
946685561.618847
Run Code Online (Sandbox Code Playgroud)
我没有问题来识别(解析)它,但我的问题是关于结果的类型.我想到两种情况:
Int范围从-2 29到2 29 - 1?我面临以下问题:
从初始集[1,2,3,4]计算所有可能的子集,即[[1],[2],[3],[4],[1,2],[1,3],[1,4],[2,3],[2,4],[3,4],[1,2,3],[1,2,4],[1,3,4],[2,3,4],[1,2,3,4]]
我编写了以下Haskell程序generate.hs,这是正确的.
generateSets :: Eq a => [a] -> [[a]] -> [[a]] -> [[a]]
generateSets [] _ _ = []
generateSets src [] _ = let isets = growthup [] src in generateSets src iset iset
generateSets src sets rsets = if null sets' then rsets else generateSets src sets' (rsets++sets')
where sets' = concatMap (flip growthup src) sets
growthup :: (Eq a) => [a] -> [a] -> [[a]]
growthup ps ss = map …Run Code Online (Sandbox Code Playgroud) parallel-processing garbage-collection haskell set lazy-evaluation