Un point de vue intéressant sur l'OLP - page 13

 
Dmitry Fedoseev:

Exhaustif ! Je ne peux pas en ajouter plus ;)

Le sarcasme est compréhensible, mais néanmoins - c'est une différence fondamentale et toutes les autres sont des conséquences de celle-ci. Par exemple, l'absence dans un PC pur de variables dont les valeurs peuvent être modifiées.

 
Dmitry Fedoseev:
Et en quoi cette OP est-elle fondamentalement différente de l'utilisation de pointeurs vers des fonctions ?

L'affectation est interdite dans la PF. Les objets ne peuvent être que créés et copiés.

 
Vasiliy Sokolov:

L'affectation est interdite dans la PF. Les objets ne peuvent être que créés et copiés.

enfin, au moins quelque chose a commencé à devenir clair à la page 13 de la discussion - j'ai regardé plusieurs tutoriels vidéo sur youtube, je ne fais que bafouiller du grand art sous la forme de FP)).


ZS : Si vous aviez écrit un article, je pense qu'il serait utile pour les "esprits immatures", le style de présentation dans vos articles mérite le respect (enfin, j'aime vos articles sinon inventez ))). ) doivent, bien sûr, être en accord avec les administrateurs.

 
Vasiliy Sokolov:

L'affectation est interdite dans la PF. Les objets ne peuvent être que créés et copiés.

Si vous ne pouvez pas le faire, mais que vous le voulez vraiment, vous pouvez le faire. Il vous suffit de vous familiariser avec les monades.)

 
Igor Makanu:

SZS : si tu écrivais un article, je pense qu'il serait utile pour les "esprits immatures", le style de présentation de tes articles mérite le respect (enfin, ou j'aime tes articles si tu ne les inventes pas ;))). ), nous devons bien sûr être d'accord avec les administrateurs.

Malheureusement, je ne peux pas. Tout d'abord, je ne connais pas grand-chose à la PF, mais juste les bases. Deuxièmement, MQL et FP sont des univers différents. Il n'est pas justifié de déguiser la FP en matériel pratique consacré au MQL.

 
Vasiliy Sokolov:

Deuxièmement, MQL et FP sont des univers différents. Il n'y a aucune raison de faire passer la FP pour un matériel MQL pratique.

Ecrivez un article sur la façon de connecter la dll haskell à mt. Et expliquer que la PF est sûre et ce dont vous avez besoin pour la finance.

 
Eh bien, quelques thèses supplémentaires sur la FP :
  • Dans la FP, l'affectation est interdite. Les objets ne peuvent être que créés et copiés.
  • Fonctions pures. Si f(a, b) = c. Alors si a et b sont identiques, le résultat de f sera toujours le même. Nous pouvons alors utiliser lamémorisation: le résultat d'une fonction est calculé une fois, puis il est simplement récupéré par la clé de ses arguments.
  • Portage. S'il existe une fonction f(a,b), elle peut être représentée par f(a) -> f(b) (une fonction prenant un argument a et renvoyant une autre fonction prenant un argument 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
  • Opérations d'empilage. Si la cession est interdite, il n'y a pas d'échange de référence. Par conséquent, les objets sont alloués directement sur la pile et sont donc à l'abri des threads. Il n'y a pas d'échange de références d'objets dans le tas (l'affectation est interdite). Par conséquent, l'accès à un objet sur le tas est également effectué de manière monopolistique à partir d'un seul thread. Par conséquent, l'accès aux objets est sûr pour les threads "dès le départ".
 
Rorschach:

Ecrivez un article sur la façon de connecter la dll haskell à mt. Et expliquer que la PF est sûre et ce dont vous avez besoin pour la finance.

Pourquoi s'embêter - il suffit de mettre Lisp dans MQL :-)

c'est cool qu'il n'y ait pas beaucoup de code dans l'implémentation du dialecte lisp...c'est petit

mais la signification pratique de cette action n'est pas abordée. Ce qui laisse entrevoir, en principe, le pouvoir et la pertinence de la PF dans ce domaine.
 
Maxim Kuznetsov:

pourquoi s'embêter - Lisp à MQL en une fois :-)

c'est cool qu'il n'y ait pas beaucoup de code dans l'implémentation du dialecte lisp... c'est petit

mais on ne voit pas le sens pratique de cette action. Ce qui fait allusion en principe au pouvoir et à la pertinence de la PF dans ce domaine.

Clojure alors

J'ai commencé à chercher des langues plus expressives, afin de moins piétiner le clavier. Celui-ci s'est avéré être encore plus court que Python. Il a une version basée sur .net, et les bibles non nouvelles sont connectées en 1 mouvement à mt.
 
Sur le sujet des styles d'écriture bizarres. J'ai trouvé mon propre code avec cette tournure.
// Определение 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);
}