2015-04-07 11 views
5

Ho problemi con il passaggio di funzioni matematiche (proc) in Nim (versione 0.10.2).passaggio di funzioni in nim

import math 

var s1 = @[1.1, 1.2, 1.3, 1.4] 
var s2 = map(s1, math.sqrt) 

ottengo l'errore

Error: 'sqrt' cannot be passed to a procvar 

Se scrivo una funzione wrapper per sqrt, funziona bene.

proc fxn(x: float): float = math.sqrt(x) 
var s2 = map(s1, fxn) 

sto usando radice quadrata e mappare come esempi, ma alla fine sarò passando sqrt (e le altre PROC matematica) ad un altro proc. C'è un modo per farlo senza scrivere le funzioni del wrapper?

risposta

3

Non ci sono piani per fare questo lavoro per impostazione predefinita, abilitando il procvar pragma per impostazione predefinita e facendo un procvar involucro per procs C-importati: https://github.com/nim-lang/Nim/issues/2172