Haskell Lambda抽象表示法

Haskell Lambda抽象表示法,haskell,Haskell,我在各种学术论文中看到了lambda抽象表示法,这些论文使用TeX将Haskell表示法转换为正确的箭头,并将希腊lambda等表示为 λx.t 而不是 λx -> t 第一种方法来自lambda演算本身,后者是当前的Haskell语言语法 现在在Haskell上写论文时,使用正式的lambda演算形式的记谱法是否合适?。。。 。。。这是一个很难回答的问题。至少它可能会让人困惑,因此,无论何时您这样做,您可能都不想再使用来表示函数组合,例如(无可否认,有些做作) 相反,您可能希望将其排

我在各种学术论文中看到了lambda抽象表示法,这些论文使用TeX将Haskell表示法转换为正确的箭头,并将希腊lambda等表示为

λx.t
而不是

λx -> t
第一种方法来自lambda演算本身,后者是当前的Haskell语言语法

现在在Haskell上写论文时,使用正式的lambda演算形式的记谱法是否合适?

。。。 。。。这是一个很难回答的问题。至少它可能会让人困惑,因此,无论何时您这样做,您可能都不想再使用
来表示函数组合,例如(无可否认,有些做作)

相反,您可能希望将其排版为,例如

(>>>) = λf. λg. g ∘ f
个人 。。。为了避免混淆,我通常更喜欢

(>>>) :: ∀α. ∀β. ∀γ. (α → β) → (β → γ) → α → γ
(>>>) =  λf → λg → g ∘ f
对于lambda活页夹,有一个样式优美的箭头;对于forall活页夹,有点;对于函数组合运算符,有圆

顺便说一下:这是一个很好的排版工具。

嗯。。。 。。。这是一个很难回答的问题。至少它可能会让人困惑,因此,无论何时您这样做,您可能都不想再使用
来表示函数组合,例如(无可否认,有些做作)

相反,您可能希望将其排版为,例如

(>>>) = λf. λg. g ∘ f
个人 。。。为了避免混淆,我通常更喜欢

(>>>) :: ∀α. ∀β. ∀γ. (α → β) → (β → γ) → α → γ
(>>>) =  λf → λg → g ∘ f
对于lambda活页夹,有一个样式优美的箭头;对于forall活页夹,有点;对于函数组合运算符,有圆


顺便说一句:这是一个很好的排版工具。

我认为这取决于潜在的读者。如果你在写数学,用数学符号。如果你希望它是跨语言的,同上。如果你在写一篇关于哈斯克尔的论文,请使用哈斯克尔符号。据我所知,点和箭头都是可以接受的数学符号;只是要和你使用的一致。(这类似于写exp(x)和e^x。两者都可以,只是保持一致。)我认为这取决于潜在的读者。如果你在写数学,用数学符号。如果你希望它是跨语言的,同上。如果你在写一篇关于哈斯克尔的论文,请使用哈斯克尔符号。据我所知,点和箭头都是可以接受的数学符号;只是要和你使用的一致。(这类似于写exp(x)和e^x。两者都可以;只是要保持一致。)