首先执行哪个应用程序?

时间:2017-09-02 21:46:53

标签: haskell

我有以下Traversable实例:

  instance Traversable (Three' a) where
    traverse f (Three' x y z) = Three' x <$> f y <*> f z  

中缀运算符<$><*>具有相同的优先级,即4.

*ExercisesTraversable> :i <$>
(<$>) :: Functor f => (a -> b) -> f a -> f b
    -- Defined in ‘Data.Functor’
infixl 4 <$>


*ExercisesTraversable> :i <*>
class Functor f => Applicative (f :: * -> *) where
  ...
  (<*>) :: f (a -> b) -> f a -> f b
  ...
    -- Defined in ‘GHC.Base’
infixl 4 <*>

首先要执行哪一项?

1 个答案:

答案 0 :(得分:10)

他们不仅具有优先权4,而且还具有左联结性。这是<?php /** More information regarding file_get_contents() - http://php.net/manual/en/function.file-get-contents.php **/ $End_Of_Line = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/path/to/Cards.txt'); /** More information regarding str-replace() - http://php.net/manual/en/function.str-replace.php **/ $End_Of_Line = str_replace('^M', '', $End_Of_Line); /** Or use $End_Of_Line = str_replace('^M', "\r\n", $End_Of_Line); if you need new lines.. **/ /** More information regarding file_put_contents() - http://php.net/manual/en/function.file-put-contents.php **/ file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/path/to/Cards.txt', $End_Of_Line); ?> 中的l;也可以选择infixl表示正确的关联性,infixr表示“如果你需要知道关联性应该是什么,则抛出错误”。因此

infix

被解析为:

Three' x <$> f y <*> f z

首先执行执行,如果没有看到要问的(Three' x <$> f y) <*> f z 的实现,就无法回答这个问题;对(<*>)进行评估时,Three' x <$> f y会像往常一样进行评估,因此如果(<*>)可以在不先评估(<*>)来电的情况下取得进展,那么它就会。