作者sunneo (艾斯寇德)
看板Programming
标题[讨论] 未来式语法
时间Sat May 3 22:37:13 2014
有天我再跟labmate聊天时提到:"如果等等谁出现了就..."
我想到程式语言与未来式条件的支援需求
当撰写程式的人期待着撰写一些事件触发行为时,他需要先为某个属性加上
callback的函式,然後为他撰写类似onUpdate的行为,接着才能为一个属性
撰写类似未来式的叙述。
目前较接近的方案是c++11的future & promise,不过跟这边想得还有些差异
我想的是如果有未来状态的条件判断,
使用者可以用轻巧的方式注册一个与变数相关的callback
这样的callback具有跟变数符号相等的区域性:
当使用者再一个函式内关心的是区域变数,则这个未来的发生只会在函式内。
如果关心的是一块动态记忆体,那麽这个未来处理行为的发生会在任何存取的地方
这个未来式如果用编译器来支援,他应该可以像是lambda一样表达
future_condition:
future => (cond_expr) compound_statement
| future => changed(ident_list) compound_statement
那麽编译器将要为所有cond_expr中,涉及的变数的改变插入一个叫用callback的指令。
如此一来,对於部份想要设计数学符号相关的使用者,他们可以让每个单独的变数都具有
函式同等意义的副作用。他可以用简单的方式定义(ex: y=a*x+b)
再任何地方取出变数时都可以得到相关变数的变化链结。
这样的形式可以确保存取时得到的是变动後的模样
目前是否有看过类似未来条件判断的程式语言或实现?或者针对这方面的有效性评估?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.127.114.38
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Programming/M.1399127839.A.D90.html
1F:→ jokester:没有明白, 会否有点像observer pattern?162.243.251.162 05/03 23:16
2F:→ jokester:可以附一个这文法的实用例子吗?162.243.251.162 05/03 23:16
3F:推 suhorng:挺有趣的XD 要不要转来 PLT 板讨论看看? 36.229.106.116 05/03 23:19
4F:→ sunneo:好啊 转转 140.127.114.38 05/03 23:22
※ sunneo:转录至看板 PLT 05/03 23:25
5F:推 Killercat:其实future再java的实作已经有了 114.44.24.32 05/05 00:08
6F:→ Killercat:他其实算是一种允许lazy evalution的一 114.44.24.32 05/05 00:08
7F:→ Killercat:种妥协,只是这东西我个人是认为仅仅 114.44.24.32 05/05 00:08
8F:→ Killercat:是免除了.wait跟join的问题而已 114.44.24.32 05/05 00:09
9F:→ Killercat:c++11我相信能做到的应该是更多一点 114.44.24.32 05/05 00:09