Antes de ofrecer mi solución Permítanme comentar las dos soluciones anteriores. Llamemos a la solución de Joey Robert magicFunction1 y la solución de Eric magicFunction2.
magicFunction1 es muy corto y elegante. Lo que no me gusta es que si tengo una lista muy grande de números y la primera ya es más grande que 10, todavía hará todo el trabajo de calcular el número más grande que no es necesario. Esto también se aplica a magicFunction2
que desarrollaron los siguientes dos soluciones:
magicFunction3[lst_, val_] :=
Position[# < val & /@ lst, False, 1, 1] == {}
y
magicFunction4[lst_, val_] :=
Cases[lst, x_ /; x >= val, 1, 1] == {}
Hacer un punto de referencia que encontré
In[1]:= data = Table[RandomInteger[{1, 10}], {10000000}];
In[2]:= Timing[magicFunction1[data, 10]]
Out[2]= {0.017551, False}
In[2]:= Timing[magicFunction2[data, 10]]
Out[2]= {10.0173, False}
In[2]:= Timing[magicFunction3[data, 10]]
Out[2]= {7.10192, False}
In[2]:= Timing[magicFunction4[data, 10]]
Out[2]= {0.402562, False}
Así que mi mejor respuesta es magicFunction4, pero todavía no sé por qué es más lento que magicFunction1. También ignoro por qué hay una diferencia de rendimiento tan grande entre magicFunction3 y magicFunction4.
Gracias, buena idea. – Nope
Solo para deletrearlo: 'magicFunction [lst_, val_]: = Max [lst]
dreeves