Главная > erlang > Задача №1: Шагает робот по дороге.

Задача №1: Шагает робот по дороге.


Продолжаю в свободное время ковырять erlang. В качестве разминки решил порешать на erlang задачи, которые обычно даю на собеседованиях по Java.


Задача №1. «Шагает робот по дороге»

Шагает робот по дороге. Правой, левой, правой, левой… Пусть ноги у робота суть независимы, даёшь команду шагнуть, она выполняет действие и передаёт управление другой ноге.

Ну и решение на erlang:

-module(robot2).
-export([go/0, leg/1]).

go() ->
    %% Левая нога
    Left  = spawn_link(robot2, leg, ["left"]),
    %% Правая нога
    Right = spawn_link(robot2, leg, ["right"]),
    %% Пошли!
    Left ! {Right, step},
    ok.

leg(Name) ->
    receive
        {Pid, step} ->
            io:format("~s~n", [Name]),
            %% Заснули на 1 секунду (робот старенький)
            timer:sleep(1000),
            Pid ! {self(), step},
            leg(Name)
    end.
Реклама
Метки:
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s