2017-09-05 3 views
0

Je suis nouveau au elixir. Ma tâche consiste à vérifier si le string donné est un ip address or a number. J'ai trouvé que inet a ce parse_address qui vérifie si la chaîne donnée est une adresse IP ou non et fournit la réponse appropriée.Erreur de syntaxe pour la commande inet parse_address dans elixir

Mon code sur le terminal IEX est la suivante

inet :parse_address("192.168.42.2") 

Quand je lance le code ci-dessus sur le terminal que je reçois l'erreur suivante

iex(1)> inet :parse_address("192.168.42.2"). 
** (SyntaxError) iex:1: syntax error before: '(' 

Quelqu'un peut-il me aider avec cette question?

Répondre

3

Il devrait être

:inet.parse_address('192.168.42.2') 

parce que les noms de module ne sont que des atomes mais Erlang, ils commencent par une lettre minuscule.

Il y a beaucoup d'articles couvrant le sujet sur l'interopérabilité Erlang, l'un d'entre eux est ici ->https://elixirschool.com/en/lessons/advanced/erlang/

+0

Je pense qu'il devrait être ': inet.parse_address ('192.168.42.2')'. String avec "is giving" {: error,: einval} '. Curieux pourquoi c'est le cas! – kiddorails

+1

@kiddorails Apparemment, la fonction attend des chaînes erlang, qui sont des charlists dans elixir. – JustMichael