我想创建三个Haskell函数:a,b和c。 每个函数都有一个参数。这个论点是三个功能之一。 我想功能a有此行为: 如果参数功能a然后返回功能a。 如果参数是函数b,则返回函数b。 如果参数是函数c,则返回函数a。 这里是我的功能a渴望行为的概括: a a = a
a b = c
a c = a
这里是我的另外两个函数的愿望行为: b a = a
b b = a
b c = c
c
我正在寻找有关问题的帮助。我正在尝试编写一个函数,它可以在ML中传递一个列表和函数。基本上,程序应该做的是获取一个列表并通过函数运行每个元素。如果函数返回true,那么元素将被添加到列表中,并且函数完成执行后返回列表。这里是我的代码: fun select(x:list, funct)= (* Define a new function that accepts a list and the p
这段代码有什么问题? addNum :: Int->Int-> Int
addNum a b = a+b
divideby :: (Int->Int -> Int) -> Int ->float
divideby f z = f /z
我想借此addNum功能作为输入divideby与除数,然后输出答案。所以divideby函数应该作为一个更高阶的函数。 这段代码有什么问题?它给出以下
我试图构造类型的函数: liftSumthing :: ((a -> m b) -> m b) -> (a -> t m b) -> t m b
其中t是一个单子转换。具体而言,我有兴趣这样做: liftSumthingIO :: MonadIO m => ((a -> IO b) -> IO b) -> (a -> m b) -> m b
我摆弄了一些哈斯克尔魔法库,但无济于事。我如何获
我受到最近Haskell博客活动的启发,试图在Haskell中编写一个类似Forth的DSL。我采取的方法是同时直接和混乱: {-# LANGUAGE TypeOperators, RankNTypes, ImpredicativeTypes #-}
-- a :~> b represents a "stack transformation"
-- from stack type "a"