可编程的配置语言 Dhall

BSD
跨平台
2020-10-07
卢温禾

Dhall是一种可编程的配置语言,可以理解成:JSON + functions + types + imports。

{- You can optionally add types

   `x : T` means that `x` has type `T`
-}

let Config : Type =
      {- What happens if you add another field here? -}
      { home : Text
      , privateKey : Text
      , publicKey : Text
      }

let makeUser : Text -> Config = \(user : Text) ->
      let home       : Text   = "/home/${user}"
      let privateKey : Text   = "${home}/.ssh/id_ed25519"
      let publicKey  : Text   = "${privateKey}.pub"
      let config     : Config =
            { home       = home
            , privateKey = privateKey
            , publicKey  = publicKey
            }
      in  config

let configs : List Config =
      [ makeUser "bill"
      , makeUser "jane"
      ]

in  configs

 

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

EmotiW 历年竞赛冠军数据及论文信息

date Baseline paper Champion paper Model & Feature Test_acc 2013 [1] [2] EmoNets 41.03 2014 [3] [4] HOG,DSIFT,DCNN 50.37 2015 [5] [6] AU-aware facial feature,CNN 53.8 2016 [7] [...

2019/06/19 23:22
16
0
尝试过把配置放在编程语言代码里吗?比YAML爽

本文将试着解释为什么大多数配置格式用起来都不太舒服,作者建议大家尝试使用一门真正的编程语言(例如,像 Python 这样的通用编程语言)来编写配置,通常这是一种可行的选择,且使用过程更感...

05/30 08:23
43
0
微服务的性能模式

本文主要讨论一些微服务系统所面临的关键性能挑战,同时也向大家介绍一些能够帮助大家解决问题的技术和模式。

2016/04/25 16:35
100
1
Linux调度器 - deadline调度器

一、概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应。在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序。换句话...

2018/02/21 21:42
3
0
微服务的性能模式

【编者按】本文作者 Rohit Dhall 是一名企业架构师,目前就职于 HCL 科技公司。 Rohit 拥有 18 年的 IT 工作经验,熟悉 [Java][1]/J2ee 、 P2P 、 DWH 、SOA 等技术。本文介绍了五种微服务系...

2016/04/25 17:03
23
3
Pedestrian Attributes Recognition Paper List

Pedestrian Attributes Recognition Paper List 2018-12-22 22:08:55 [Note] you may also check the updated version of this blog from my github: https://github.com/wangxiao5791509/Pe...

2018/12/22 22:10
5
0
SLAM综述|激光与视觉融合SLAM

点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个...

10/08 13:22
27
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部