Top 10 de los artículosYouTubeGmail Goole GayRomeo Números chinos Números romanos Orkut Costco Sistema porta hepático El mundo Factbook |
News: |
| Nial | |
|---|---|
| Paradigma | arsenal |
| Aparecido adentro | 1981 |
| Diseñado cerca | Mike Jenkins |
| Revelador | Sistemas Ltd de Nial |
| Disciplina que mecanografía | dinámico |
| Puestas en práctica importantes | Q'Nial |
| Influenciado cerca | APL Lisp |
Nial (de “lengua interactiva jerarquizada del arsenal”) es un de alto nivel programación del arsenal la lengua se convirtió a partir de cerca de 1981 de Mike Jenkins de Universidad de la reina, Kingston, Ontario, Canadá.
Nial combina una notación de la programación funcional para los órdenes basados encendido Teoría del arsenal convertido por Trenchard More con los conceptos de programación estructurados para numérico, el carácter y los datos simbólicos.
Es el más de uso frecuente para prototyping y inteligencia artificial.
En 1982, Jenkins formó sistemas Ltd de un Nial de la compañía para poner la lengua y la puesta en práctica de Q'Nial de Nial. En fecha 2006, el Web site de la compañía apoya un proyecto abierto de la fuente para el software de Q'Nial con el binario y la fuente disponibles para la transferencia directa de conformidad con Licencia artística.
Contenido |
Nial utiliza una teoría generalizada y expresiva del arsenal en su versión 4, pero haber sacrificado algo de la generalidad del modelo funcional, y las aplicaciones modificaron la teoría del arsenal en la versión 6. Solamente la versión 6 está disponible ahora.
Nial define todos sus datatyps como órdenes rectangulares jerarquizados. se consideran los ints, los booleans, los carbones etc como un arsenal solitario o un arsenal que contiene a un solo miembro. Se pone en orden puede contener otros órdenes para formar arbitrariamente las estructuras profundas. Nial también proporciona expedientes. Se definen como non-homogenous ponen en orden la estructura.
Las funciones en Nial se llaman Operations. Del manual de Nial: “Una operación es un objeto funcional que se da un arsenal de la discusión y vuelve un arsenal del resultado. El proceso de ejecutar una operación dándole un valor de la discusión se llama una llamada de la operación o un uso de la operación. “
Nial como otras idiomas derivadas APL permite la unificación de operadores binarios y de operaciones. Así abajo las notaciones tienen el mismo significado.
la suma es igual que +
2 + 3 2 sumas 3
+ [2.3] sumas [2.3]
+ 2 3 sumas 2 3
+ suma (de 2 3 ) (2 3)
Nial también utiliza los transformadores que son funciones de una orden más alta. Utilizan la operación de la discusión para construir una nueva operación modificada.
está dos veces el transformador f (f f) se reclina dos veces [4, 5, 6, 7, 8] |6 7 8
Un atlas en Nial es una operación compuesta de un arsenal de operaciones componentes. Cuando un atlas se aplica a un valor, cada elemento del atlas es inturn aplicado al valor para proporcionar un resultado final. Esto se utiliza para proporcionar el estilo del punto libremente (las sin-variables) de definiciones. También es utilizado por los transformadores. En abajo los ejemplos “internos [+, *]” la lista “[+, *]” es un atlas.
cuenta 6 |1 2 3 4 5 6
Los órdenes pueden también ser literales
Arr: = [5, 6, 7, 8, 9] |5 6 7 8
Forme da las dimensiones del arsenal y las forma de nuevo puede ser utilizado formar de nuevo las dimensiones.
forma Arr |5
a: = 2 3 forman de nuevo Arr # forman de nuevo es una operación binaria con dos discusiones. Puede también ser escrito en infix como # a: = forme de nuevo [[2.3], Arr] |5 6 7 |8 9 5
b: = 3 2 forman de nuevo Arr |5 6 |7 8 |9 5
[+, *] un b interno |130 113 |148 145
Las definiciones están nombre de la forma< '> es <la expresión> '
el promedio es/[suma, cuenta] Arr medio |7.
el hecho es se repite [0 =, 1 primer, paso, producto, -1 +] el hecho 4 |24
la revolución es forma de nuevo [forma, a través [el paso, paso, inverso añade]] la revolución [1, 2, 3, 4] |4 3 2 1
Contraste con APL
prepara es sublista [cada uno (2 = cuenta del resto del eachright de la suma (0 = MOD) [paso, cuenta]), paso] prepara 10 |2 3 5 7
Comprobación de la divisibilidad de A por B
is_divisible es 0 = MOD [A, B]
Definir el filtro del is_prime
el is_prime es 2 = eachright de la suma is_divisible [paso, la cuenta]
La cuenta genera un arsenal [1. N] y pasa es N (operación de identidad). el eachright aplica is_divisible (paso, elemento) en cada elemento del arsenal contar-generado. Así esto transforma el arsenal contar-generado en un arsenal donde los números que pueden dividir N son substituidos por “1” y otros por “0”. Por lo tanto si el número N es primero, la suma [arsenal transformado] debe ser 2 (sí mismo y 1).
Ahora todo que permanece es generar otro arsenal usando la cuenta N, y filtra todos los que no sean primeros.
prepara es cuenta del resto de la sublista [cada is_prime, paso]
acoplamiento ensambla juntos sus órdenes de la discusión
sublista [A, B] vuelve una lista de los artículos de B elegidos según la lista de los booleans dados en A, seleccionando esos artículos de B donde está verdad el artículo correspondiente de A.
En a Bifurcación [A, B, C] X la primera A es un predicado, y si A (X) es verdad, entonces se vuelve B (X) es C otra vuelta (X).
Paso es una operación de identidad para los órdenes.
el quicksort es bifurcación [ >= [1 primer, cuenta], paso, acoplamiento [ la sublista del quicksort [ < [paso, primero], paso], sublista [fósforo [paso, primero], paso], sublista del quicksort [ > [paso, primero], paso] ] ]
Usarlo.
quicksort [5, 8, 7, 4, 3] |3 4 5 7 8
|
Custom Search
|
© Copyright 2011 WorldLingo. Reservados todos los derechos.