在建議我收到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]
...什