La sintaxis contiene menos parentesis, comas, puntos y comas y llaves. Todo ello con el fin de que el código se más facil de comprender.
Por ejemplo, el siguiente bloque de código crea un elemento div e imprime una alerta al hacerle click.
Es basado en indentación, similar a Python. Sin embargo, se acerca más a lenguajes como F# u OCaml.
Similar a otros lenguajes funcionales, en KScript todo es una expresión. Esto quiere decir que todas las estructuras se pueden usar en todos lados.
Por ejemplo, si se quiere asignar un descuento de 7.5% si el valor de la compra supera los $200, o 5 en el caso contrario, en JavaScript, se haría lo siguiente:
En KScript, los condicionales (y el resto de estructuras) son expresiones, por lo que se puede expresar esa misma lógica de forma segura y concisa.
KScript ofrece acceso a los tipos de datos algebraicos a JavaScript. Son una forma rápida, concisa y segura de definir tipos de datos.
Si quisieramos modelar los tipos de heroes de un juego, haríamos:
Y más adelante, se hace referencia a estos valores.
KScript permite validación de tipos de datos y valores en tiempo de ejecución opcional. Esto es posible gracias a pattern matching.
Por ejemplo, la siguiente función para dividir requiere 2 parámetros, ambos de tipo number, y el último diferente de cero. Entonces, se definen esos requisitos en la función, como pre-condiciones.
Si una llamada no satisface las condiciones en tiempo de ejecución, se lanza una excepción.
Se pueden usar otros tipos de datos, definir post-condiciones, incluso múltiples definiciones para manejar casos adicionales.