在建议我收到here,我试图重写一个函数没有多余的绑定分配和返回,但是被一个额外的IO阻塞我似乎无法理解如何摆脱它。 我 good :: IO (Either Int String)
getit :: Either Int String -> Int
main :: IO()
main = do
x <- fmap getit good
putStrLn $ show
鉴于这些类型: type Bar = number;
type Foo = {
bar: Bar,
};
而这种自由点转换功能fooToBar: import { prop } from 'ramda';
const fooToBar = prop('bar');
是否可以诠释fooToBar的的Foo -> Bar签名?
简写:有没有更习惯写法(\a->[a])? 朗形式:对于任何数据类型Foo a,如果我有一个函数f :: Foo a -> b,我需要写东西像... wrapAndF a = f $ Foo a
...我可以使它指向自由写 wrapAndF = f . Foo
但如果我的功能g :: [a] -> b上列出工作和我的包装看起来像这样... wrapAndG a = g [a]
...什