首页 > 其他分享 >走向更强的 Literal 的时代

走向更强的 Literal 的时代

时间:2023-08-28 14:00:13浏览次数:27  
标签:走向 更强 字面 var Literal sql 字符串 语言

正如 声明式编程的没落 - Inshua - 博客园 分析,声明式编程由于不符合软件工程需要,实际上正在淘汰,但与此同时,它的特征被过程式编程吸收为了Literal,中文翻译字面量。

什么是 Literal,在 JS 里有

  • 数字 123,123.123, 0x123, 0b0101 在 Java 里可以有 0b0101_0101 的变化
  • 字符串 "abdd" "a'b'cd" , 多行文本 """abcd""", 以及模板字符串 abcd{1+2}
    • C# 里有 @"C:\Temp"
    • python 里则有 f"abcd{1}", r"C:\Temp"
  • 数组 [1,2,3]
  • 动态对象
  • 布尔值 true, false 及空值 null 等

react 的 JSX 也可以视为一种字面量,实际上各种js都试图引入一些特殊的字面量,例如 rhino 里就曾经把 XML 引入作为字面量。

即使C语言也有一些字面量,但是大部分语言里字面量都不被认真对待,许多语言里声明变量和初始化是两步操作,见惯了Java里繁琐的 HashMap 初始化的朋友对此应该不陌生。

我们看到字面量在不停的前进,JSX 和模板字符串表现出一个趋势,代表了字面量的发展方向,那就是混合即兴代码。和古老的年代不同,数据结构逐渐稳定下来,需要用到字面量的要素越来越清晰,无非就是字符串、对象、数组、键值对以及Tag。就结构来说即线性结构和树状结构。

d2js 给出了一种更高级的字符串字面量的形态

sql{.
selec  t name, age from person where true
  code{.
    if(cond){
      sql{. and cond .}
    }
  .}
.}

这种形态可以完全混合代码,与模板字符串相比,它进退的空间更大。如果将 sql 视为字符串————事实上 sql 确实是一个字符串变量————这里传递出一个更高级的观念:通过宿主语言可以控制字符串创建过程

谁也不应该轻视这种思维,我们可以做一些扩展,譬如在数组字面量引入宿主语言控制:

var arr = [0, {for(i in 1..100) .push(i)}, 101, 102]
var arr = [0, {for(i in 1..100) if(i %2) .push(i)}, 101, 102]

又如在对象字面量引入宿主语言控制

var obj = {
  "name" if(lang=="en") else "姓名" : "John",
  if(lang=="zh"){
     "属相": "猴"
  }
}

又如树形结构引入宿主语言

var html = Form {
    if(!validate()){
        Label[class="illegal-input"]{
            "输入不合法"
        }
    }
    Input,
    Submit
}

字面量提供了即兴编写结构的可能,让开发者的思路不至于因编程语言设计局限而不停切换,不但能提升开发效率的,也可以大幅提升程序可读性。

从语言特点来说,它以过程式为宗,以声明式语言为用,是编程语言未来发展的必然趋势。

标签:走向,更强,字面,var,Literal,sql,字符串,语言
From: https://www.cnblogs.com/inshua/p/17662118.html

相关文章

  • IT团队如何引领企业走向创造价值的新途径?
    随着疫情结束带来的经济回暖,我们无疑已做好了更充分的准备。信息技术使许多企业能够在关门歇业的情况下继续运营,以防止大规模集会并强制执行社会隔离。得益于信息技术支持团队,许多企业能够动员其员工进行远程工作,有些甚至只需几天时间。 现在,最初激增的VPN连接问题、数据访......
  • 本地企业的SEO战略:从地方市场走向全球舞台
    导言:随着互联网的不断发展,本地企业在寻求更广阔市场时,搜索引擎优化(SEO)成为了不可或缺的一环。本文将深入探讨本地企业如何通过精细的SEO战略,从本地市场走向全球舞台,实现业务的扩展和品牌的提升。一、深入了解目标受众本地市场:首先要了解本地市场的需求、偏好和行为,确定本地关......
  • 宽厚 厚重 要往更高更远处上(闯) 更高更远更强
    司马懿:你等年纪轻轻一遇挫折,便松散懈怠。日后怎成大器,虽称满腹经纶,却是鸡肠鼠肚,连几句恶语都容它不下,你等且记住,为人者,有大度成大器也!夫处世之道,亦即应变之术,岂可偏执一端?孙子云:“不战而屈人之兵”,善之善者也。肃清万里,总齐八荒,若能一统华夏,方为当世之英雄。古人云,得民心者,可......
  • 12个ggplot2扩展包帮你实现更强大的可视化
    ggplot2自从2007年推出以来,成为世界范围内下载最频繁、使用最广泛的R包之一。许多人包括ggplot2的创建人HadleyWickham将这一成功归功于ggplot2背后的哲学。这个软件包的灵感来源于LelandWilkinson编写的《图形语法》一书,在此书中将graphs分解成scales和layers,并将原始数据与表......
  • RISC-V走向开放服务器规范
    原文:RISC-VMovingTowardOpenServerSpecification作者:AgamShah转载自:https://www.hpcwire.com/2023/07/24/risc-v-moving-toward-open-server-specification/中文翻译:2023年7月24日RISC-VInternational目前正在起草一份可以标准化RISC-V服务器芯片和系统开发的规范,RISC-......
  • B73是易感品种,为何根际微生物群落的互作更强
    B73作为易感品种,在根际微生物群落的互作方面表现出更为加强的特点,这在一定程度上可以解释为何B73自交系的根际微生物类群具有更高的网络连通性。根际微生物是与植物根系紧密关联的微生物群落,它们与植物之间进行复杂的相互作用,包括共生、拮抗、共生、共生菌根等。这些微生物与植物......
  • 火山引擎DataLeap:更强数据目录搜索能力,做到一步找数
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群随着数据管理变得更加复杂,元数据的重要性呈指数级增加。 如今,DataCatalog(数据目录)被看成是元数据管理的最佳工具,而一个通用的DataCatalog平台,通常包含元数据管理,搜索,血缘,标签,术语等功......
  • EEZ H24005开源电源升级版EEZ BB3,性能更强,电压支持0-80V,电流0-10A
    软件包:https://github.com/eez-open/modular-psu-firmware硬件包:https://github.com/eez-open/modular-psu地址来源:https://www.crowdsupply.com/envox/eez-bb3视频展示:http://v.qq.com/x/page/u0957v1u11y.html规格:产品效果:基于自家的开源跨平台GUI设计平台EEZStudio设计的界面效......
  • SyntaxError: invalid hexadecimal literal
     Traceback(mostrecentcalllast):File"<frozenimportlib._bootstrap>",line1078,in_handle_fromlistfromCrypto.CipherimportAESFile"/Users/cloud/opt/anaconda3/envs/801/lib/python3.10/site-packages/Crypto/Cipher/__i......
  • 实时云渲染技术_如何助力VR虚拟现实走向成熟?
    近年来,虚拟现实(VirtualReality,VR)技术在市场上的应用越来越广泛,虚拟现实已成为一个热门的科技话题。相关数据显示,2019年至2021年,我国虚拟现实市场规模不断扩大,从2019年的282.8亿元增长至2021年的583.9亿元,市场规模实现翻番。预计未来3年将保持快速增长,到2023年将突破1000亿元大......