首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果函数应用程序是一个典型的类型化呢?

如果函数应用程序是一个典型的类型化呢?
EN

Stack Overflow用户
提问于 2016-02-09 08:57:15
回答 1查看 83关注 0票数 5

假设Haskell的函数应用程序( "space“运算符)是在一个类型中而不是在语言中。我想它看起来就像

代码语言:javascript
复制
class Apply f where
    ($) :: f a r -> a -> r

instance Apply (->) where
   ($) = builtinFnApply#

f a则会对f $ a进行恶搞。其思想是,这将使您可以定义其他类型的功能,如

代码语言:javascript
复制
instance Apply LinearMap where
    ($) = matrixVectorMult

诸若此类。

,这会使类型推断无法判定吗?,我的直觉说,它是这样的,但是我对类型推理的理解仅限于简单的辛德雷-米尔纳。作为后续行动,如果它是不可判定的,它是否可以通过取缔某些病理事件来判定?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 09:24:51

如果您可以将这看作是Haskell (用您的“空格运算符”替换"space运算符“)之上的语法糖,我就看不出为什么这会使类型推断比现在更糟了。

但是,我可以看到,随着这种变化,代码可能更加模糊。

代码语言:javascript
复制
class C a where get :: a
instance C (Int -> Int) where get = id
instance C Linearmap where get = ...

test = get (5 :: Int) -- actually being (get $ (5 :: Int))

上面的get可以从这两个实例中选择,而在普通的Haskell中并不会出现这种模糊性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35287673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档