-module(nzhf23m1s). -author('hallgato@bme.hu'). -date('2020-11-19'). -version('$LastChangedDate: 2020-11-19 14:18:54 +0100 (Thu, 19 Nov 2020) $$'). -compile(export_all). %-export([szigetek/1,szfold/1,test/0]). % Részfeladat: % Írjon szigetek néven olyan függvényt, amely visszaadja egy lista pozitív % elemekből álló, folytonos, semelyik irányba ki nem terjeszthető % részlistáinak listáját. Törekedjék hatékony, jobbrekurzív megoldásra! % % -spec szigetek(Xs::[integer()]) -> Rss::[[integer()]]. % % Az Xs pozitív elemekből álló, folytonos, maximális % % hosszúságú részlistáinak listája az Rss lista. % Teljes feladat: % Írjon szfold néven olyan függvényt a szigetek/1 függvény felhasználásával, % amely egy negatív számokat nem tartalmazó egészlista szárazföldjeinek % hosszából és legmagasabb pontjából álló párok listáját adja eredményül! % Szárazföldnek a csupa pozitív számból álló, legalább egyelemű, maximális % hosszúságú, folytonos részlistát nevezzük. % % -spec szfold(Zs::[integer()]) -> Ys::[{Hossz::integer(),Csucs::integer()}]. % % A negatív számokat nem tartalmazó Zs egészlistában előforduló szárazföldek % % hosszát és legmagasabb pontját leíró {Hossz, Csucs} párok listája Ys. % Részfeladat -spec szigetek(Xs::[integer()]) -> Rss::[[integer()]]. szigetek(_Xs) -> []. % Teljes feladat -spec szfold(Zs::[integer()]) -> Ys::[{Hossz::integer(),Csucs::integer()}]. szfold(_Zs) -> []. %% ---------------------------------------------------------------------------- test() -> {szigetek([]) =:= [], szigetek([-1,0,-2,-3,0,0]) =:= [], szigetek([1,2,3,0,0,4,5,6]) =:= % [[1,2,3],[4,5,6]], [], szigetek([2,1,3,0,0,7,6,-1,-3,0,7,5,6]) =:= % [[2,1,3],[7,6],[7,5,6]], [], szfold([0,1,0,3,4,0,0,1]) =:= % [{1,1}, {2,4}, {1,1}], [], szfold([0,0,30,4,10,0,0,100]) =:= % [{3,30}, {1,100}], [], szfold([0,0,0]) =:= [], vege }.