r1 - 07 Jul 2006 - 01:30:24 - OrloVYou are here: TWiki >  Refaldevel Web > LibList

List: работа с выражениями как с плоскими списками

Все функции данной библиотеки работают только с верхним уровнем переданных им выражений, рассматривая его как плоский набор термов, список.

Zip: попарно склеить элементы двух списков

$func Zip (e.list1) (e.list2) = e.new-list;

Длина результата всегда равна длине первого списка. Если второй список короче первого, то функция завершится ошибкой: $error Zip "Unexpected fail".

Примеры:

      <Zip (A B C) (1 2 3)>   ==>   (A 1) (B 2) (C 3)
      <Zip (A) (1 2 3)>       ==>   (A 1)
      <Zip () (1 2 3)>        ==>   /*empty*/
      <Zip (A B C) (1 2)>     ==>   $error Zip "Unexpected fail"

Map: применить функцию к каждому элементу списка

$func Map s.Fname e.Fargs (e.list) = e.new-list;

Filter: отфильтровать элементы по резльтатам работы заданной функции

$func Filter s.Fname e.Fargs (e.list) = e.new-list;

Split: разбить на два списка по результатам работы заданной функции

$func Split s.Fname e.Fargs (e.list) = (e.true-list) (e.false-list);

Foldr: свёртка с заданным начальным параметром

$func Foldr s.Fname e.Fargs (e.value) (e.list) = e.value;

Foldr1: свёртка с последним элементом списка в качестве начального параметра

$func Foldr1 s.Fname e.Fargs (e.list) = e.value;

Concat: убрать все скобки на верхнем уровне

$func Concat e.lists = e.list;

Paren: одеть скобки на каждый терм

$func Paren exprs = e.lists;

Reverse: инвертировать список

$func Reverse e.list = e.rev-list;

Intersperse: расставить заданное выражение межды всеми термами

$func Intersperse (e.sep) e.list = e.new-list;

Nub: удалить повторы

$func Nub e.expr = e.selected;

Or: добавить к первому списку все новые элементы из второго

$func Or (e.list1) e.list2 = e.or;

And: выбрать из первого списка все элементы, которые есть во втором

$func And (e.list1) e.list2 = e.and;

Sub: выбрать из первого списка все элементы, которых нет во втором

$func Sub (e.list1) e.list2 = e.not;

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
R+

This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback