Я хочу использовать лямбда-выражение с cython, но оно не работает с cpdef. Ошибка говорит о том, что она еще не поддерживается, но cython changeleg говорит, что лямбда-выражения поддерживаются.
%%cython
cimport numpy as np
import numpy as np
cdef foo():
a = np.random.randint(1,10,10)
b = sorted(a, key = lambda x: x%np.pi) #Compiles
return(b)
cpdef goo():
a = np.random.randint(1,10,10)
b = sorted(a) #Compiles
return(b)
cpdef hoo():
a = np.random.randint(1,10,10)
b = sorted(a, key = lambda x: x%np.pi) #Compile time error
return(b)
Error compiling Cython file:
------------------------------------------------------------
...
cpdef goo():
a = np.random.randint(1,10,10)
b = sorted(a)
return(b)
cpdef hoo():
^
------------------------------------------------------------
/********/.cache/ipython/cython/_cython_magic_63378538fa4250ed3135e0289d6af7a0.pyx:14:6: closures inside cpdef functions not yet supported
Действительно ли лямбда-выражения не поддерживаются или я что-то упустил?
Python версия 3.5.5; Версия Cython: 0,24