2010-02-22 14 views
12

Lo que quería era una forma de pasar los argumentos a funciones que se parecían a un mapa de hash de ruby. Aunque tal vez esto es un mal ajuste de Erlang, no estoy seguro todavía¿Qué es lo más parecido a hash en Erlang?

hashes

En Ruby I A menudo se utiliza como:

{ "a" => 100, "b" => 200}

: ¿Qué es lo más parecido a Erlang?

Actualización: he encontrado desde entonces esto:

http://20bits.com/articles/erlang-an-introduction-to-records/

Se graba con un buen candidato?

+3

Debe crear una etiqueta específica para sus propias preguntas ... – Zed

+0

Un buen consejo, gracias Zed – Zubair

+2

Al leer sus respuestas a las siguientes respuestas, puedo decir con seguridad que está cometiendo un error horrible. Desea utilizar un modismo de llamada de función ruby ​​en erlang porque no está familiarizado con las expresiones idiomáticas de erlang ... no haga eso. Aprende el idioma que estás usando. – Dustin

Respuesta

14

proplist s, dict s, o gb_tree s.

+1

los candidatos parecen tener la mejor sintaxis similar. Gracias Zed – Zubair

+1

los candidatos pueden ser similares en sintaxis, pero no es un hash. Tiempo de búsqueda lineal pero insert constante. Editar: Debería leer la pregunta, realmente quería la sintaxis. =) – psyeugenic

+0

búsqueda lineal puede ser mucho más rápido para hashes con solo un puñado de elementos ... – Zed

3

está usted aquí: dict - Key-Value Dictionary

Post Data: He buscado en Google este plazo de 30 años por lo que creo que se podría evitar esta pregunta pidiendo ;-)

Editar: para defender mi respuesta:

from_list (Lista) -> Dict

Tipos:
lista = [{clave, valor}]
Dict = dictionary()

Esta función convierte la Lista de claves/valores List en un diccionario.

Esta es una cita de mi enlace. Entonces puede crear hashes exactamente de la misma manera que cuando usa proplists.

+0

Lo hice google y no hay nada remotamente similar sintácticamente en la página web que describió : {"a" => 100, "b" => 200} – Zubair

+3

Pensé que preguntaba acerca de la similitud funcional, no sintáctica, porque creo que es ridículo buscar una sintaxis similar, solo para escribir código que se vea como lo mismo que en otro idioma. –

+0

Sí, probablemente tenga razón. Es solo que a menudo cuando miro las llamadas a la función erlang, es difícil saber exactamente para qué sirve cada parámetro, y siempre me gustaron los hashes de Ruby.Pero sí, probablemente me pregunten la pregunta incorrecta. Gracias – Zubair

6

Las tablas ETS y DETS son verdaderas tablas hash a diferencia de un dict. DETS son para el almacenamiento de discos mientras ETS están en la memoria. Son los bloques de construcción para la base de datos de Mnesia.

+0

Pero, ¿se usan ETS o DETS para pasar parámetros a una función? – Zubair

+0

Claro, pero no estoy seguro de a qué se refiere. Sin embargo, tenga en cuenta que no son estructuras inmutables, no devuelven una nueva copia modificada después de un 'put'. Entonces pueden ser peligrosos. Pero si de seguro necesitas la velocidad de un hash y un gran tamaño, son el camino a seguir. –

9

Erlang R17A incluirá la estructura de datos del mapa.

+0

R17 ya está en vivo. Así es como funcionan los Hashmaps en erlang http://joearms.github.io/2014/02/01/big-changes-to-erlang.html – gextra

Cuestiones relacionadas