2012-02-06 13 views
8

estoy tratando de disfrutar de algunas de las impresionantes presentaciones código javascript de golf en campo de código de la anarquía, pero seguir viendo cosas como:Javascript taquigrafía regex?

for(;s=readline();)print("h"+/t.*/(s)) 

... que fue el ganador de JS: http://golf.shinh.org/p.rb?ttp

No entiendo cómo es la sintaxis correcta de JavaScript, e incluso intenté volver a enviar eso, pero dijo que el objeto no es una función, que es algo parecido a lo que esperaría que sucediera.

¿Fue esto algún tipo de error o taquigrafía o algo en una versión anterior de javascript?

+0

Parece que '/ t. * /' Crea un objeto regex y lo aplica a la cadena en 's', y luego agrega" h "al frente. Sin embargo, no sabría si la sintaxis '/ t. */(S)' es válida. –

Respuesta

13

¿Fue esto algún tipo de error o taquigrafía o algo en una versión anterior de javascript?

Más o menos, sí. De acuerdo con that site's version info, usa SpiderMonkey (el motor de JavaScript de Mozilla), que solía tener la característica de que los objetos de expresión regular eran invocables; es decir, si re era un objeto de expresión regular, entonces re(...) era equivalente a re.exec(...). Esa característica se eliminó en this change, como resultado de Bug 582717, y ese sitio se ha actualizado a una versión que incorpora esa eliminación.

+0

Impresionante, exactamente lo que estaba esperando. – mowwwalker