对巴解组织的看法很有意思 - 页 13

 
Dmitry Fedoseev:

详尽无遗!我不能再加了 ))

讽刺是可以理解的,但尽管如此--这是一个基本的区别,所有其他的都是它的后果。例如,在一个纯粹的FP中没有变量,这些变量的值可以被改变。

 
Dmitry Fedoseev:
而这个OP与使用 函数的指针 有什么本质的区别?

在FP中禁止分配。对象只能被创建和复制。

 
Vasiliy Sokolov:

在FP中禁止分配。对象只能被创建和复制。

好吧,至少有一些东西开始变得清晰,由第13页的讨论 - 看了几个视频教程在YouTube上,只是胡说八道一些高艺术的形式的FP))


ZS:如果你写了一篇文章,我想它对 "不成熟的思想 "是有用的,你的文章的表达风格值得尊重(好吧,我喜欢你的文章,如果不编的话))。),当然,需要同意管理员的意见

 
Vasiliy Sokolov:

在FP中禁止分配。对象只能被创建和复制。

如果你不能,但真的想,你可以)你只是要处理单体)

 
Igor Makanu:

SZS:如果你写一篇文章,我想对 "不成熟的思想 "是有帮助的,你的文章的表述风格值得尊重(好吧,或者说我喜欢你的文章,如果你不编的话))。),当然我们必须同意管理员的意见。

不幸的是,我不能。首先,我对FP了解不多,只是知道一些基本情况。第二,MQL和FP是不同的宇宙。将FP伪装成专门用于MQL的实用材料是没有道理的。

 
Vasiliy Sokolov:

其次,MQL和FP是不同的宇宙。将FP伪装成实用的MQL材料是没有道理的。

撰写一篇 关于如何将haskell dll连接到mt的文章。并解释说FP是安全的,你需要的是融资。

 
好吧,关于FP的一些更多的论述。
  • 在FP中,禁止转让。对象只能被创建和复制
  • 纯粹的功能。如果f(a,b)=c。那么如果a和b是相同的,f的结果将永远是相同的。然后我们 可以使用记忆化:一个函数的结果被计算一次,然后它被简单地从其参数中通过键来检索
  • 携带。如果有一个函数f(a,b),它可以表示为f(a)->f(b)(一个函数取一个参数a并返回另一个取一个参数b的函数:
    public static Action<string> GreetingCarry(string g)
    {
        Action<string> pn = (b) => Console.WriteLine(g + " " + b);
        return pn;
    }
    
    var printGreetingAndName = GreetingCarry("Hello");
    printGreetingAndName("Ivan");
    printGreetingAndName("Sergey");
    
    >> Hello Ivan
    >> Hello Sergey
  • 堆栈操作。如果禁止转让,就没有参照物交换。因此,对象是直接在堆栈上分配的,因此它们是线程安全的。在堆中不存在对象的引用交换(禁止赋值)。因此,访问堆上的对象也是由单个线程垄断性地进行的。因此,对象访问是 "开箱即用 "的线程安全的。
 
Rorschach:

撰写一篇关于如何将haskell dll连接到mt的文章。并解释说FP是安全的,你需要的是融资。

何必呢--只要把Lisp放在MQL中就可以了 :-)

在lisp方言的实现中没有太多的代码,这很酷......很小巧。

只是没有涉及这一行动的实际意义。这在原则上暗示了FP在这个领域的力量和相关性
 
Maxim Kuznetsov:

何必呢--Lisp到MQL一次搞定 :-)

在lisp方言的实现中没有太多的代码,这很酷......很小巧。

只是没有看到这一行动的实际意义。这在原则上暗示了FP在这个领域的力量和相关性

那么Clojure

开始寻找具有更多表现力的语言,以便减少对键盘的践踏。这一次,结果是比Python还要短。它有一个基于.net的版本,非新约圣经在1动中连接到mt。
 
关于奇怪的写作方式的问题。我遇到了我自己的代码,有这个转折。
// Определение Offset-параметра в ЛК.
int GetOffset()
{
  const double Price = NormalizeDouble(Ask / 2, _Digits);
  const double Lots = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
  
  const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUYLIMIT, Lots, Price, 0, 0, 0, "RannForex LimitOffset Detected");
  
  return((Ticket > 0) && OrderSelect(Ticket, SELECT_BY_TICKET) ?
         (int)((OrderOpenPrice() - Price) / _Point + OrderDelete(OrderTicket()) * 0.1) : 0);
}