如果你是说 Ruby 的话:
python 有 type hinting https://docs.python.org/3/library/typing.html ,静态检查类型,虽然有点弱,但聊胜于无。ruby 我觉得是看不到了
关于此 Matz 的最后一次表态说是要自动类型推断,在 Ruby 的项目管理的某个 issue 里,具体忘了是哪个,之前 Google 过这个问题。
说出来你可能不信,你甚至可以用 Ruby 写 Haskell like 的语法 没错,上面的代码都是可以运行的,当然实现方式就是大家喜闻乐见的元编程了,CodeWars 有这题 (https://www.codewars.com/kata/59a8dda8dbe3b0b6f700008d),欢迎大家踊跃尝试(
hhh 很有趣,我是第五个过的,其实 show 的求值时机有点迷幻,因为测试用例里用的是 equals,这样的话我只能暴力遇到 show 就求值了,本来应该 main 触发求值的?
严格来讲的话遇到 main 触发求值但是也不应该返回一个值,而是要将字符串打印出来,这样讲的话,让 show 返回一个 IO Monad,然后写一个 runIO :: IO () -> String 来测试可能更合适一些……顺便,您通过了这道题,麻烦打个分,让这题早日摆脱 beta 状态
打了个 2kyu 应该差不多,我看到兰兰是把 main 做为一个分界,在之前的 show 和之后的 show 有不同的行为,其实也挺有意思的,当然这个测起来就更难了(