ФЭНДОМ


Покажите пример программы Hello World!Править

implement Hello;

include "sys.m";
   sys: Sys;
include "draw.m";
 
Hello: module
{
	init:   fn(ctxt: ref Draw->Context, argv: list of string);
};

init(ctxt: ref Draw->Context, argv: list of string)
{
	sys = load Sys Sys->PATH;
	sys->print("hello, world!\n");
}

Как сравнить значения переменных структурного типа (кортежи, списки)?Править

У меня есть программа с двумя картежами:

a:= (0,0);
b:= (1,1);

Но когда я пытаюсь их сравнить, компилятор выдает такое сообщение:

x.b:123 : cannot compare '(1,1)'  if type (int, int) 
to '(0,0)' of type (int, int)

Вы не можете сравнивать структурные типы в Limbo.

Я получаю ошибки компилятора пытаясь получить доступ к членам массива.Править

У меня есть программа, в которой я определяю массив строк и пытюсь им воспользоваться:

s : array [10] of string;
s[4] = "Строка"

Но получаю ошибки компилятора. То же самое происходит когда я пишу нечто вроде этого:

i : array [10] of int;
i[4] = 10;

В Limbo объявления имеют следующую форму:

объявление:
	список-идентификаторов : тип;
тип:
	тип-данных
	тип-функция

В обоих выражения, array [10] of string и array [10] of int не типы данных, а выражения, выделяющие объекты (каждый размером 10). Поэтому, в вашем случае правильный способ выполнить объявление будет выглядеть так:

список-идентификаторов := выражение;

Ваши выражения должны выглядеть так:

s := array [10] of string;

и

i := array [10] of int;

Как я могу "выгрузить" модуль из памяти?Править

Просто присвойте хэндлу нужного модуля значение nil:

my_module_handle : Module;
my_module_handle = load Module Module->PATH;
...
my_module_handle = nil;

Глобальные переменные и потоки Править

Любой из потоков может изменить значение глобальной переменной, которое будет немедленно доступно всем остальным потокам.

Зачем моему приложению нужен пайп (pipe) ? Править

Если каналы используются для обмена сообщениями между отдельными процессами, порожденными вашим приложением, то пайп (устройство '#|') может понадобиться для обмена данными между приложениями. К его особенностям относится возможность осуществлять операции и чтения и записи на любом из его концов.