小编Ste*_*sen的帖子

如何在clojurescript中创建json

我有一些clojurescript,我想与一些JavaScript库互操作.在我的clojurescript代码中,我做了一些分析,并提出了一个地图列表.就像是

[{:prop1 "value1" :prop2 "value2"}, {:prop1 "something else" :prop2 "etc"}...]
Run Code Online (Sandbox Code Playgroud)

我需要将它传递给javascript函数as

[{prop1: "value1", prop2: "value2}, {..} ...]
Run Code Online (Sandbox Code Playgroud)

我不知道如何从我的clojurescript函数返回一个javascript对象.有没有办法将嵌套的地图和列表序列化为javascript对象.或者一种创建新javascript对象然后在其上设置属性的方法?

clojurescript

21
推荐指数
3
解决办法
9830
查看次数

F#中的树表示

我正在尝试使用元组列表在F#中实现一个树.
[a]where a= (string, [a])
每个节点都有一个子节点列表和叶子节点(name, [])

我希望能够像这样以递归方式遍历列表的每个级别.

    a
 b     e
c d   f g
Run Code Online (Sandbox Code Playgroud)

但它们并不总是二叉树.

let t2 = [("a", [("b", [("c", []), ("d", [])]), ("e", [("f", []), ("g", [])])])]

let rec checkstuff tple =
    match tple with
    | (_, []) -> true
    | (node, children) ->
        List.fold ( || ) false (List.map checkstuff children)
Run Code Online (Sandbox Code Playgroud)

我明白了:

类型不匹配.期待一个
    ('a * 'b list) list
给定的一个,但
    'b list
统一时产生的类型将是无限的''a',并''b * 'a list'

有没有办法可以做这样的事情,还是不支持这样的元组的递归列表?

tree f#

9
推荐指数
2
解决办法
4994
查看次数

用Aeson解析复杂的jsons

我正在尝试使用Aeson Library将对API的调用解析为haskell记录类型

我正在使用维基百科页面,并将它们解析为标题和链接列表.一个样本就是这个,

{"query":{"pages":{"6278041":{"pageid":6278041,"ns":0,"title":"Lass","links":[{"ns":0,"title":"Acronym"},{"ns":0,"title":"Dead Like Me"},{"ns":0,"title":"Donna Lass"},{"ns":0,"title":"George Lass"},{"ns":0,"title":"Girl"},{"ns":0,"title":"Lassana Diarra"},{"ns":0,"title":"Lightning Lass"},{"ns":0,"title":"Real Madrid"},{"ns":0,"title":"Shadow Lass"},{"ns":0,"title":"Solway Lass"},{"ns":0,"title":"Szymon Lass"},{"ns":0,"title":"The Bonnie Lass o' Fyvie"},{"ns":0,"title":"The Tullaghmurray Lass"},{"ns":0,"title":"Woman"},{"ns":12,"title":"Help:Disambiguation"}]}}}}
Run Code Online (Sandbox Code Playgroud)

我想将它解析为标题和像这样的数据类型的链接列表.

data WikiPage = WikiPage { title :: String,
                           links :: String }
Run Code Online (Sandbox Code Playgroud)

我目前的代码是什么,

instance FromJSON WikiPage where
  parseJSON j = do
    o <- parseJSON j
    let id = head $ o .: "query" .: "pages" 
    let name = o .: "query" .: "pages" .: id .: "title"
    let links = mapM (.: "title") (o .: "query".: "pages" .: id …
Run Code Online (Sandbox Code Playgroud)

json haskell

9
推荐指数
1
解决办法
1878
查看次数

你如何接受黑色文件上传

我有这样的文件输入设置

[:p "Upload a book"]
      (form-to [:post "/upload"]
               (file-upload :book)
               (submit-button "Upload"))
Run Code Online (Sandbox Code Playgroud)

我的上传端点看起来像这样.

(defpage [:post "/upload"] {:keys [book]} (println book))
Run Code Online (Sandbox Code Playgroud)

本书似乎只是上传文件的标题字符串而不是文件本身.我如何获得该文件?

clojure noir

6
推荐指数
1
解决办法
1274
查看次数

标签 统计

clojure ×1

clojurescript ×1

f# ×1

haskell ×1

json ×1

noir ×1

tree ×1