PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
PLT
[闲聊] 物件导向的 Multi-dispatching
楼主:
ronin728
(浪人)
2016-11-08 18:01:55
写作业有感,
我今天来嘴炮一下我对程式语言抽象能力的看法 XD
小剧场
"""
资工系学生小明正在设计一个 ML 语言的编译器,
他设计了一套语义系统能将 AST 一步步转成组合语言,
他选择了用 C++/Java 来实(自)现(虐),
但同时他也不想用写好几座 if-else 金字塔,
他希望 C++/Java 能像 Haskell 一样
爽爽用 Pattern matching,
也许 Dynamic dispatching 能够做到类似的效果...?
"""
可惜的是,
C++/Java 只有 Single dispathing,
这种机制所能表达的语法非常有限,
用算用了还是得在 class 中写一堆 if-else。
若 OOPL 要像 FPL 的 Pattern matching 般便利,
唯一的可能就是使用 Multi-methods(Multi-dispatching)。
可惜的是许多 OOPL 根本就没有内建支援,
例如 C++、Java、Python、Ruby ...
这些语言需要靠一些技巧来摹拟、扩充,才能做到这种功能。
( Bjarne 有提出把 Pattern matching 与
Multi-method 加入 C++ 的作法,详见最下方的连结)
题外话 自带 Multi-method 的乖宝宝名单 [
ANSI CL、Racket、Clojure ← 壮哉我大 Lisp
Perl 6 ← 除了$$@@[email protected]/*
作者: esrever
2016-11-09 02:05:00
The express problem 让我想到 data types àla carte XD
继续阅读
[问题] 算法转换成code
HYDRAGA
[情报] Functional Thursday #45
CindyLinz
【问题】关于AS3 如何获取图形路径的问题
irene921033
[问题] VBA 双循环输入单一格
gofee
[情报] Functional Thursday #44
CindyLinz
[问题] python入门问题
dinoptt1993
Re: [讨论] c++ 紫戌蜗荦伪
achilles2550
[讨论] c++ 紫戌蜗荦伪
achilles2550
[问题]请问C语言的二为动态阵列字串输入
hunkchen2000
[问题] 下载完Visual Studio2015之后
anony4c2003
Links
booklink
Contact Us: admin [ a t ] ucptt.com