假设我有一个基本的递归函数:
function recur(data) {
    data = data+1;
    var nothing = function() {
        recur(data);
    }
    nothing();
}
如果我有匿名功能,我怎么能这样做...
(function(data){
    data = data+1;
    var nothing = function() {
        //Something here that calls the function?
    }
    nothing();
})();
我想要一种方法来调用调用这个函数的函数...我已经看到某个地方的脚本(我记不清哪里)可以告诉你一个被调用的函数的名字,但我记不起任何一个那个信息现在.
>>>flip fix (0 :: Int) (\a b -> putStrLn "abc")
Output: "abc"
这是使用的简化版本flip fix.
我在一些youtube视频中看到了这种方式,可能来自Google技术谈话或其他一些谈话.  
有人可以给我一些指针(不是一些内存地址,谢谢!)究竟fix是什么.我知道官方网站上的文档的一般定义.我已经在互联网上浏览了很多东西,但却找不到一个全面且易于理解的答案.
flip fix对我来说,这看起来像个谜.那个特定的函数调用实际发生了什么?
顺便说一下,我2个月前才选择了Haskell.而且我不擅长数学:(
这是完整的代码,由进行该演示的人共享,如果有人感兴趣:
(哦,这是解释游戏的维基链接mastermind 点击)
module Mastermind where
import Control.Monad
import Data.Function
import Data.List
import System.Random
data Score = Score
  { scoreRightPos :: Int
  , scoreWrongPos :: Int
  }
  deriving (Eq, Show)
instance Read Score where
  readsPrec _ r = [ (Score rp wp, t)
                  | (rp, s) <- readsPrec 11 r
                  , (wp, t) <- …