Interessante assumir a OLP - página 13

 
Dmitry Fedoseev:

Exaustivo! Eu não posso acrescentar mais ))

O sarcasmo é compreensível, mas mesmo assim - esta é uma diferença básica e todas as outras são conseqüências disso. Por exemplo, a ausência em um PF puro de variáveis, cujos valores podem ser alterados.

 
Dmitry Fedoseev:
E como este OP é fundamentalmente diferente do uso de ponteiros para funções?

A designação é proibida na PF. Os objetos só podem ser criados e copiados.

 
Vasiliy Sokolov:

A designação é proibida na PF. Os objetos só podem ser criados e copiados.

bem, pelo menos algo começou a ficar claro na página 13 da discussão - assistiu a vários tutoriais em vídeo no youtube, apenas balbuciando sobre alguma arte de alta qualidade na forma de FP)


ZS: Se você tivesse escrito um artigo, acho que seria útil para "mentes imaturas", o estilo de apresentação em seus artigos merece respeito (bem, eu gosto de seus artigos se não os inventar))). ), é claro, precisam concordar com os administradores

 
Vasiliy Sokolov:

A designação é proibida na PF. Os objetos só podem ser criados e copiados.

Se você não pode, mas realmente quer, você pode) Você só tem que lidar com mônadas)

 
Igor Makanu:

SZS: se você escreveu um artigo, eu acho que seria útil para "mentes imaturas", o estilo de apresentação em seus artigos merece respeito (bem, ou eu gosto de seus artigos se você não os inventar)) ), é claro que devemos concordar com os administradores.

Infelizmente, eu não posso. Primeiro, eu não sei muito sobre PF, mas apenas o básico. Em segundo lugar, MQL e FP são universos diferentes. Não há justificativa para disfarçar FP como um material prático dedicado à MQL.

 
Vasiliy Sokolov:

Em segundo lugar, MQL e FP são universos diferentes. Não há justificativa para mascarar FP como material MQL prático.

Escrevaum artigo sobre como conectar o haskell dll ao mt. E explique que o fp é seguro e o que você precisa para o financiamento.

 
Bem, mais algumas teses sobre FP:
  • Na PF, a designação é proibida. Os objetos só podem ser criados e copiados.
  • Funções puras. Se f(a, b) = c. Então, se a e b forem as mesmas, o resultado de f será sempre o mesmo. Então podemos usara memorização: o resultado de uma função é calculado uma vez, e depois é simplesmente recuperado pela chave de seus argumentos.
  • Transportando. Se houver uma função f(a,b), ela pode ser representada como f(a) -> f(b) (uma função pegando um argumento a e retornando outra função pegando um argumento 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
  • Operações de empilhamento. Se a designação for proibida, não há troca de referência. Portanto, os objetos são alocados diretamente sobre a pilha, portanto, são seguros contra fios. Não há troca de referência de objetos na pilha (é proibida a cessão). Portanto, o acesso a um objeto na pilha também é feito de forma monopolística a partir de um único fio. Portanto, o acesso a objetos é seguro "fora da caixa".
 
Rorschach:

Escreva um artigo sobre como conectar o haskell dll ao mt. E explique que o fp é seguro e o que você precisa para o financiamento.

Por que se preocupar - basta colocar Lisp em MQL :-)

é legal que não haja muito código na implementação do dialeto lisp...é pequeno

somente o significado prático desta ação não é abordado. O que indica, em princípio, o poder e a relevância do PF neste campo
 
Maxim Kuznetsov:

por que se preocupar - Lisp para MQL de uma vez :-)

é legal que não haja muito código na implementação do dialeto lisp... é pequeno

apenas o significado prático desta ação não é visto. O que alude em princípio ao poder e relevância da PF neste campo

Clojure então

Começou a procurar idiomas com mais expressividade, de modo a pisotear menos o teclado. Este acabou sendo ainda mais curto do que o Python. Ela tem uma versão baseada em .net, e as bíblias não-Novas são conectadas em 1 movimento para mt.
 
Sobre a questão de estilos de escrita estranhos. Encontrei meu próprio código com esta reviravolta.
// Определение 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);
}