Tamgu(탐구)—— 函数式、命令式与逻辑一体化编程语言
Tamgu(탐구)是一个函数式、命令式与逻辑一体化(FIL,Functional、Imperative、Logical)的编程语言,主要用于注解和数据扩充。
Tamgu 是一种多线程编程语言,特征包括:
- 接近 Python 的命令式风格,但具有强大的类型系统。
- 受 Haskell 启发的函数式风格,可自由地与命令式范式相结合。
- 由 Prolog 启发的逻辑风格,可以自由地与命令式和函数式范式相结合。
使用 Tamgu,可以对于编程中的每个特定问题,选择最合适的形式,并自由地混合函数式、命令式和逻辑方法,以实现最具表现力但最紧凑的代码。
此外,Tamgu 还提供了一个注解语言实现,它提供了一个结合了词汇和规则的综合规则机制,允许以有效的方式检测文本中的复杂模式。它提供了许多功能,同时也提供了许多库,有助于设计和实现复杂文档的注解方案。
Code Example
//An imperative language int i=10; string s="20"; ------------------------------------------------------------------------------------ //Containers map m = {'a':1, 'b':2}; //all sorts of containers treemap t = {"u":10, 'v':'toto'}; vector v = [1,2,3,"a","b"]; ivector iv = [1..10]; //iv = [1,2,3,4,5,6,7,8,9,10] iv = [1,3..10]; //iv = [1,3,5,9] ------------------------------------------------------------------------------------ //Functions, threads and frames function mycall(int i, string s) {...} //functions thread mythread(int i, string s) {...} //threads frame myclass {...} //class definition ------------------------------------------------------------------------------------ //Native Korean string support s="에버랜드 알쏭달쏭 Quiz"; if (s[0].ishangul()) println("Ok"); uvector dec = s.jamo(); //['ᄋ','ᅦ','ᄇ','ᅥ','ᄅ','ᅢ','ᆫ','ᄃ','ᅳ'...] dec = s.romanization(); //['-/ng','e','b','eo','r/l','ae','n','d',...] ------------------------------------------------------------------------------------ //Functional approach based on Haskell ivector iv = [1..20]; //a list of integers between 1 and 20 iv.shuffle(); //The order of the elements is now random. <fastsort([]) = []>; //if the list is empty, we return an empty "list" <fastsort([fv:v]) = minlist &&& fv &&& maxlist where //we merge the different list... let minlist = fastsort(<filter (<=fv) v>), //we sort the list with elements smaller than fv let maxlist = fastsort(<filter (>fv) v>)>; //we sort the list with elements larger than fv //we can call a functional definition as regular code v=fastsort(iv); ------------------------------------------------------------------------------------ //Predicates concat([],?X,?X). concat([?H|?T],?Y, [?H|?Z]) :- concat(?T,?Y,?Z). //You can mix freely your predicate definition with some regular tamgu code v=concat(["english",'russian',"french"],['spanish'],?L); println(v); //["english",'russian',"french","spanish"]
注解示例
//We define some lexical rules (starting with a "@") @food <- burger. @food <- tartare. //Our rule: if "the food" word is found in a sentence, then we return a "meal" label meal <- "the", #food. //We need a specific object to scan a sentence annotator r; //a sentence string sentence="Here, the burger and the tartare are delicious." vector v = r.parse(sentence); //Result: v = [['meal',[10,16]],['meal',[25,32]]] //It reads: two 'meal' were found at position 10-16 and position 25-32...

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 网易有道 REDIS 云原生实战
摘要 本次以Redis为范例,阐述了有道基础架构团队在基础设施容器化道路上的实践,主要将从声明式管理,Operator工作原理,容器编排,主从模式,集群模式,高可用策略,集群扩缩容等方面展开。 youdao 背景 ydtech Redis 是业务系统中较为常用的缓存服务,常用于流量高峰、数据分析、积分排序等场景,并且通过中间件可以实现系统之间的解耦,提升系统的可扩展性。 传统物理机部署中间件,需要运维人员手动搭建,启动时间较长,也不利于后期维护,无法满足业务快速发展的需求。 云原生相较于传统IT,可以助力业务平滑迁移、快速开发、稳定运维,大幅降低技术成本,节约硬件资源。 云原生中间件是指依托容器化、服务网格、微服务、Serverless等技术,构建可扩展的基础设施,持续交付用于生产系统的基础软件,在功能不变的前提下,提高了应用的可用性与稳定性。 在这种大趋势下,有道基础架构团队开始了云原生中间件的实践,除了本文介绍的 Redis,还包括 Elasticsearch、ZooKeeper 等。 youdao 面临的挑战 ydtech 利用云原生技术可以解决当前Redis部署缓慢,资源利用率...
- 下一篇
Haiku 操作系统正在移植 Wine ,以运行 Windows 软件
当年 BeOS 被 palm 收购了之后,就转去开发 palmOS 且不再开发 pc 版的 BeOS,作为 BeOS 的鼓舞人心的继任者,Haiku 操作系统全新地诞生了。 现在 Haiku已经开发了二十年,在新的一年带来了一个振奋人心的好消息:据外媒 phoronix 报导,从 2022 年开始,Haiku 用户将能通过 Wine 运行 Windows 应用程序。 仍然是由熟悉的 Haiku 开发者 "X512"完成此功能,X512 一致致力于 Haiku 的图形驱动程序移植和其他功能开发,上个月就开发了 Haiku OS 实验性的 3D 加速功能 ,而本周则一直在处理 Wine,并宣布能够在 Haiku 操作系统上运行 Windows 程序方面取得了快速进展。 X512 一直通过 Haiku论坛实时分享他的进步,以下是他在 Haiku 上获得 Wine 补丁的一些早期成果: 更多细节和正在进行的移植进度,可查看 Haiku OS 论坛原贴。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Thymeleaf,官方推荐html解决方案