trash

Run Settings
LanguageMercury
Language Version
Run Command
:- module main. :- interface. :- import_module io. :- pred main(io::di, io::uo) is det. :- implementation. :- import_module list. :- import_module int. % Importamos el módulo int para operadores aritméticos y relacionales % Definimos un tipo simple que encapsula un entero :- type my_data ---> data(int). % Una función que crea una lista de 'my_data' con n elementos :- func create_data_list(int) = list(my_data). create_data_list(N) = (if N =< 0 then [] else [data(N) | create_data_list(N - 1)]). % Una función que procesa la lista y la convierte en una lista de enteros :- func process_data_list(list(my_data)) = list(int). process_data_list([]) = []. process_data_list([data(X) | Xs]) = [X | process_data_list(Xs)]. main(!IO) :- % Creamos una lista de 10 elementos DataList = create_data_list(10), % Procesamos la lista IntList = process_data_list(DataList), % Imprimimos la lista procesada io.write_list(IntList, ", ", io.write_int, !IO), io.nl(!IO), % En este punto, DataList y IntList ya no son necesarios y el recolector de basura % se encargará de liberar la memoria asociada a estas estructuras. io.write_string("Memory has been managed automatically by the garbage collector.", !IO), io.nl(!IO).
Editor Settings
Theme
Key bindings
Full width
Lines