Interessante presa di posizione sull'OLP - pagina 13

 
Dmitry Fedoseev:

Esauriente! Non posso aggiungere altro ))

Il sarcasmo è comprensibile, ma tuttavia - questa è una differenza fondamentale e tutte le altre sono conseguenze di essa. Per esempio, l'assenza in una FP pura di variabili, i cui valori possono essere cambiati.

 
Dmitry Fedoseev:
E in che modo questo PO è fondamentalmente diverso dall'uso di puntatori a funzioni?

L'assegnazione è vietata in FP. Gli oggetti possono essere solo creati e copiati.

 
Vasiliy Sokolov:

L'assegnazione è vietata in FP. Gli oggetti possono essere solo creati e copiati.

beh, almeno qualcosa ha iniziato a diventare chiaro da pagina 13 della discussione - guardato diversi video tutorial su youtube, solo blaterando di un po' di alta arte in forma di FP))


ZS: Se tu avessi scritto un articolo, penso che sarebbe utile per le "menti immature", lo stile di presentazione nei tuoi articoli merita rispetto (beh, mi piacciono i tuoi articoli se non lo fanno ))). ), naturalmente, devono essere d'accordo con gli amministratori

 
Vasiliy Sokolov:

L'assegnazione è vietata in FP. Gli oggetti possono essere solo creati e copiati.

Se non puoi, ma vuoi davvero farlo, puoi) Devi solo avere a che fare con le monadi)

 
Igor Makanu:

SZS: se tu scrivessi un articolo, penso che sarebbe utile per le "menti immature", lo stile di presentazione nei tuoi articoli merita rispetto (beh, o mi piacciono i tuoi articoli se non te lo inventi ))) ), ovviamente dobbiamo essere d'accordo con gli amministratori.

Sfortunatamente, non posso. In primo luogo, non so molto di FP, ma solo le basi. In secondo luogo, MQL e FP sono universi diversi. Non c'è alcuna giustificazione per mascherare FP come un materiale pratico dedicato al MQL.

 
Vasiliy Sokolov:

In secondo luogo, MQL e FP sono universi diversi. Non c'è alcuna giustificazione per mascherare FP come materiale pratico MQL.

Scrivere un articolo su come collegare haskell dll a mt. E spiegare che il fp è sicuro e quello che serve per la finanza.

 
Bene, qualche altra tesi sulla FP:
  • In FP, l'assegnazione è vietata. Glioggetti possono essere solo creati e copiati.
  • Funzioni pure. Se f(a, b) = c. Allora se a e b sono uguali, il risultato di f sarà sempre lo stesso. Allora possiamo usare lamemoizzazione: il risultato di una funzione è calcolato una volta, e poi è semplicemente recuperato dalla chiave dei suoi argomenti.
  • Trasporto. Se c'è una funzione f(a,b), può essere rappresentata come f(a) -> f(b) (una funzione che prende un argomento a e restituisce un'altra funzione che prende un argomento 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
  • Operazioni in pila. Se l'assegnazione è vietata, non c'è scambio di riferimenti. Pertanto, gli oggetti sono allocati direttamente sullo stack, quindi sono thread-safe. Non c'è scambio di riferimenti di oggetti nell'heap (l'assegnazione è vietata). Pertanto, l'accesso a un oggetto sull'heap è anche eseguito in modo monopolistico da un singolo thread. Pertanto, l'accesso agli oggetti è thread-safe "out of the box".
 
Rorschach:

Scrivere un articolo su come collegare haskell dll a mt. E spiegare che il fp è sicuro e quello che serve per la finanza.

Perché preoccuparsi - basta mettere Lisp in MQL :-)

è bello che non ci sia molto codice nell'implementazione del dialetto lisp... è piccolo

solo il significato pratico di questa azione non viene affrontato. Il che accenna, in linea di principio, al potere e alla rilevanza della FP in questo campo
 
Maxim Kuznetsov:

perché preoccuparsi - da Lisp a MQL in una volta sola :-)

è bello che non ci sia molto codice nell'implementazione del dialetto lisp... è piccolo

solo il significato pratico di questa azione non si vede. Che allude in linea di principio al potere e alla rilevanza della FP in questo campo

Clojure quindi

Ha iniziato a cercare lingue con più espressività, in modo da calpestare meno la tastiera. Questo si è rivelato essere ancora più corto di Python. Ha una versione basata su .net, e le bibbie non nuove sono collegate in 1 mossa a mt.
 
A proposito di strani stili di scrittura. Mi sono imbattuto in un mio codice con questa torsione.
// Определение 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);
}
Motivazione: