相关疑难解决方法(0)

什么是'表达问题'?

我对这是什么有一个粗略的想法,但如果有人对"表达问题"的解释他们认为简洁直观我很乐意听到它.

computer-science programming-languages functional-programming

46
推荐指数
2
解决办法
5709
查看次数

Ocaml中的打开和关闭联合类型

我是第一次看OCaml,有一些F#和Haskell的背景知识.因此,很多东西都很熟悉,但有一点不是"开放"和"封闭"联合的概念(使用反引号和[<语法]).

这些有用的是什么以及它们使用的次数是多少?

ocaml types idioms

12
推荐指数
2
解决办法
2714
查看次数

实现相同功能的不同类型的映射列表?

我想将一个函数应用于列表中的每个元素(map),但元素可能有不同的类型,但都实现了相同的函数(这里是"putOut"),就像一个接口.但是,我无法创建此"接口"类型的列表(此处为"可输出").

如何映射实现相同功能的不同类型的列表?

import Control.Monad

main :: IO ()
main = do
 mapM_ putOut lst
 where
  lst :: [Outputable] -- ERROR: Class "Outputable" used as a type
  lst = [(Out1 1),(Out2 1 2)]

class Outputable a where
 putOut :: a -> IO ()

-- user defined:

data Out1 = Out1 Int deriving (Show)
data Out2 = Out2 Int Int deriving (Show)

instance Outputable Out1 where
 putOut out1 = putStrLn $ show out1

instance Outputable Out2 where
 putOut out2 = putStrLn $ …
Run Code Online (Sandbox Code Playgroud)

haskell types interface map

3
推荐指数
2
解决办法
1509
查看次数