Lisp Приправленный Erlang - Обменивающиеся сообщениями примитивы

В Java:

Наконец всегда называется, независимо от того, если исключение было правильно поймано в выгоде (), или на самом деле если у Вас есть выгода вообще.

9
задан Hynek -Pichi- Vychodil 25 November 2009 в 21:39
поделиться

2 ответа

Я не пользователь LFE , но есть руководство пользователя в дереве исходных текстов. Прочитав его, я бы предположил, что это примерно так:

(let ((A 2))
  (let ((Pid (spawn (lambda ()
                      (receive
                        (B (when (is_integer B))
                          (: io format "Added: ~p~n" (list (+ A B))))
                        (_ nan))))))
    (! Pid 5)))

Но я, скорее всего, совершил ошибку, так как я даже не оценил это в LFE.

Некоторые мои вопросы:

  • Существует ли форма LET * или она уже ведет себя как она?
  • Охрана называется более лихой is-integer, а не is_integer, как я писал?
7
ответ дан 4 December 2019 в 19:34
поделиться

В выпуске LFE очень мало примеров, все предложения приветствуются.

Предложение Кристиана верно. Мой единственный комментарий: нет необходимости использовать имена переменных с заглавной буквы, это не неправильно, но не обязательно.

LFE let - это «настоящий» let, в котором привязки переменных видны первыми. в теле. Вы можете использовать шаблоны в let. Существует также форма let * (на самом деле макрос), которая связывается последовательно.

Нет, до сих пор я сохранил все имена основных функций Erlang точно так же, как они находятся в vanilla erlang. Определенно более шепотливо использовать - вместо _ в именах, но что вы делаете со всеми другими именами функций и атомами в OTP? Одно из предложений состоит в том, чтобы автоматически отобразить - в символах LFE в _ в полученных атомах, и, конечно же, вернуться в обратном направлении. Это, вероятно, сработает, но приведет ли это к путанице?

Тогда я мог бы иметь модуль поведения, похожий на:

(defmodule foo
  (export (init 1) (handle-call 2) (handle-cast 2) (handle-info 2) ...)
  (behaviour gen-server))

(defun handle-call ...)

(defun handle-cast ...)

etc ...

Но я очень неоднозначно отношусь к этому.

5
ответ дан 4 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: