我有一个名为points.json的JSON文件,以及一个读取函数,如:
private func readJson() {
let file = Bundle.main.path(forResource: "points", ofType: "json")
let data = try? Data(contentsOf: URL(fileURLWithPath: file!))
let jsonData = try? JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
print(jsonData)
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,有什么帮助吗?
我是Haskell的新手.我做了一个类型Maybe3.
data Maybe3 a= Just3 a| Unknown3 | Missing3 deriving (Show, Eq, Ord)
eq3 :: Eq a => Maybe3 a-> Maybe3 a-> Bool3
eq3 Unknown3 _ = Unk3
eq3 Missing3 _ = False3
eq3 _ Missing3 = False3
eq3 _ Unknown3 = Unk3
eq3 (Just3 a) (Just3 b)=if a==b then True3 else False3
Run Code Online (Sandbox Code Playgroud)
如何使Maybe3成为一个应用函子?如何让它成为Monad?
我有一个清单 ["a","ab","abc", "abcd"]
如何获取仅包含长度> 2的项目的列表.
意味着结果是 ["abc","abcd"].
import Control.Concurrent (forkIO)
import System.Environment (getArgs)
main= do
[a,b]<- getArgs
putStrLn $ "command line arguments: " ++ show [a,b]
Run Code Online (Sandbox Code Playgroud)
当我编译它时,它没事,但是当我运行它时,
它说"用户错误(模式匹配失败的do表达式)",这里有什么问题?
我写了一个函数来随机从[-10,10]得到一对.
import System.Random
main =
do {
s <- randomNumber
; b <- randomNumber
; print (head s,head b)}
randomNumber :: IO [Int]
randomNumber = sequence $ replicate 1 $ randomRIO (-10,10)
Run Code Online (Sandbox Code Playgroud)
现在我想要一个像[(1,2),(2,3),(2,3)]这样的列表,所有数字都来自randomNumber.我怎样才能做到这一点?我不知道如何实现这一目标.
我试图使用状态来随机,但不知怎的,我不能在我的计算机上使用状态.我这样做了:
import System.Random
import Control.Monad.State
randomSt :: (RandomGen g, Random a) => State g a
randomSt = State random
Run Code Online (Sandbox Code Playgroud)
但是当我编译它时,它显示:不在范围内:数据构造函数'State'