library

Prolog files

aggregate.pl  -- Aggregation operators on backtrackable predicatesShow source
ansi_term.plShow source
ansi_format/3Format text with ANSI attributes.Source
ansi_get_color/2Obtain the RGB color for an ANSI color parameter.Source
ansi_hyperlink/2Create a hyperlink for a terminal emulator.Source
ansi_hyperlink/3Create a hyperlink for a terminal emulator.Source
tty_url_hook/2Hook for location_url/2.Source
console_color/2Hook that allows for mapping abstract terms to concrete ANSI attributes.
message_line_element/2Hook implementation that deals with ansi(+Attr, +Fmt, +Args) in message specifications.Source
apply.plShow source
convlist/3Similar to maplist/3, but elements for which call(Goal, ElemIn, _) fails are omitted from ListOut.Source
exclude/3Filter elements for which Goal fails.Source
foldl/4Fold an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("fold-left"), using columns of m list elements as arguments for Goal.Source
foldl/5Fold an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("fold-left"), using columns of m list elements as arguments for Goal.Source
foldl/6Fold an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("fold-left"), using columns of m list elements as arguments for Goal.Source
foldl/7Fold an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("fold-left"), using columns of m list elements as arguments for Goal.Source
include/3Filter elements for which Goal succeeds.Source
maplist/2True if Goal is successfully applied on all matching elements of the list.Source
maplist/3True if Goal is successfully applied on all matching elements of the list.Source
maplist/4True if Goal is successfully applied on all matching elements of the list.Source
maplist/5True if Goal is successfully applied on all matching elements of the list.Source
partition/4Filter elements of List according to Pred.Source
partition/5Filter List according to Pred in three sets.Source
scanl/4Scan an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("scan-left"), using columns of m list elements as arguments for Goal.Source
scanl/5Scan an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("scan-left"), using columns of m list elements as arguments for Goal.Source
scanl/6Scan an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("scan-left"), using columns of m list elements as arguments for Goal.Source
scanl/7Scan an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("scan-left"), using columns of m list elements as arguments for Goal.Source
apply_macros.pl  -- Goal expansion rules to avoid meta-callingShow source
arithmetic.plShow source
arithmetic_expression_value/2True when Result unifies with the arithmetic result of evaluating Expression.Source
arithmetic_function/1Declare a predicate as an arithmetic function.Source
assoc.pl  -- Binary associationsShow source
atom.plShow source
identifier_parts/2Parts is a list of atoms that make up Identifier.Source
join_identifier_parts/3Join parts of an identifier according to Style.Source
restyle_identifier/3Restyle an identifier by extracting the alnum substrings and joining them together according to Style.Source
backcomp.pl  -- Backward compatibilityShow source
$apropos_match/2True if Needle is a sub atom of Haystack.Source
$arch/2Source
$argv/1Source
$declare_module/3Used in triple20 particle library.Source
$home/1Source
$module/2Source
$set_prompt/1Set the prompt for the toplevel.Source
$sig_atomic/1Execute Goal without processing signals.Source
$strip_module/3This used to be an internal predicate.Source
$version/1Source
C/3Used to be generated by DCG.Source
at_initialization/1Register goal only to be run if a saved state is restored.Source
call_cleanup/3Call Cleanup with an indication of the reason unified to Catcher.Source
checklist/2Source
concat/3Source
concat_atom/2Concatenate a list of atomic values to an atom.Source
concat_atom/3Concatenate a list of atomic values to an atom, inserting Separator between each consecutive elements.Source
convert_time/2Convert a time-stamp as obtained though get_time/1 into a textual representation using the C-library function ctime().Source
convert_time/8Convert a time stamp, provided by get_time/1, time_file/2, etc.Source
current_module/2True if Module is a module loaded from File.Source
current_mutex/3Source
current_thread/2Source
displayq/1Write term ignoring operators and quote atoms.Source
displayq/2Write term ignoring operators and quote atoms.Source
eval_license/0Source
export_list/2Module exports the predicates of List.Source
feature/2Control Prolog flags.Source
flush/0Source
free_variables/2Return a list of unbound variables in Term.Source
hash/1Demands PredInd to be indexed using a hash-table.Source
hash_term/2If Term is ground, Hash is unified to an integer representing a hash for Term.Source
index/1Prepare the predicate indicated by Head for multi-argument indexing.Source
lock_predicate/2Source
merge/3Merge the ordered sets List1 and List2 into a new ordered list.Source
merge_set/3Merge the ordered sets Set1 and Set2 into a new ordered set without duplicates.Source
message_queue_size/2True if Queue holds Size terms.Source
proper_list/1Old SWI-Prolog predicate to check for a list that really ends in a [].Source
read_clause/1Source
read_clause/2Source
read_history/6Source
read_pending_input/3Source
read_variables/2Source
read_variables/3Source
set_base_module/1Set the default module from which we inherit.Source
set_feature/2Control Prolog flags.Source
setup_and_call_cleanup/3Call Cleanup once after Goal is finished.Source
setup_and_call_cleanup/4Call Cleanup once after Goal is finished, with Catcher unified to the reason.Source
sformat/2Source
sformat/3Source
string_to_atom/2Bi-directional conversion between string and atom.Source
string_to_list/2Bi-directional conversion between a string and a list of character codes.Source
sublist/3Succeeds if List2 unifies with a list holding those terms for which call(Goal, Elem) succeeds.Source
substring/4Predecessor of sub_string using 1-based Offset.Source
sumlist/2True when Sum is the list of all numbers in List.Source
thread_at_exit/1Register Goal to be called when the calling thread exits.Source
trie_insert_new/3Source
unlock_predicate/2Source
write_ln/1Source
base32.plShow source
base32/2Translates between plaintext and base32 encoded atom or string.Source
base32/3Encode/decode list of character codes using base32.Source
base64.plShow source
base64/2Equivalent to base64_encoded/3 using the options as(atom) and encoding(iso_latin_1).Source
base64/3Encode/decode list of character codes using base64.Source
base64_encoded/3General the base64 encoding and decoding.Source
base64_encoded/4Source
base64url/2Translates between plaintext and base64url encoded atom or string.Source
base64url/3Encode/decode list of character codes using Base64URL.Source
broadcast.pl  -- Event serviceShow source
charsio.pl  -- I/O on Lists of Character CodesShow source
check.pl  -- Consistency checkingShow source
codesio.pl  -- I/O on Lists of Character CodesShow source
coinduction.plShow source
coinductive/1The declaration :- coinductive name/arity, ... defines predicates as coinductive.Source
csv.pl  -- Process CSV (Comma-Separated Values) dataShow source
ctypes.plShow source
is_digit/3Succeeds if `C' is a digit using `Base' as base and `Weight' represents its value.Source
is_paren/2True if Open is the open-parenthesis of Close.Source
to_lower/2Downcase a character code.Source
to_upper/2Upcase a character code.Source
upper_lower/2True when U is the character code of an uppercase character and L is the character code of the corresponding lowercase character.Source
date.plShow source
date_time_value/3Extract values from a date-time structure.Source
day_of_the_week/2Computes the day of the week for a given date.Source
day_of_the_year/2Computes the day of the year for a given date.Source
parse_time/2Stamp is a timestamp created from parsing Text using the representation Format.Source
parse_time/3Stamp is a timestamp created from parsing Text using the representation Format.Source
debug.pl  -- Print debug messages and test assertionsShow source
dialect.pl  -- Support multiple Prolog dialectsShow source
dicts.pl  -- Dict utilitiesShow source
dif.plShow source
dif/2Constraint that expresses that Term1 and Term2 never become identical (==/2).Source
edinburgh.plShow source
debug/0Switch on/off debug mode.Source
display/1Write a term, ignoring operators and special syntax constructs such as brace terms ({a}) and lists ([a,b,c]).Source
display/2Write a term, ignoring operators and special syntax constructs such as brace terms ({a}) and lists ([a,b,c]).Source
fileerrors/2Query and change the fileerrors flag.Source
nodebug/0Switch on/off debug mode.Source
reconsult/1Load source file(s), wiping the old content first.Source
unknown/2Edinburgh Prolog predicate for dealing dealing with undefined procedures.Source
edit.plShow source
edit/0Edit associated or script file.Source
edit/1Edit indicated object.Source
edit_command/2This predicate should specify the shell-command called to invoke the user's editor.Source
locate/2Locate object from the specified location.Source
locate/3Source
select_location/3Source
error.plShow source
exceptions.pl  -- Exception classificationShow source
explain.plShow source
explain/1Give an explanation on Term.Source
explain/2True when Explanation is an explanation of Term.Source
fastrw.pl  -- Fast reading and writing of termsShow source
files.plShow source
can_open_file/2Succeeds if the user has access to `File' in mode `Mode'.Source
chdir/1Change Working Directory.Source
gensym.plShow source
gensym/2Generate <Base>1, <Base>2, etc atoms on each subsequent call.Source
reset_gensym/0Reset gensym for all registered keys.Source
reset_gensym/1Restart generation of identifiers from Base at <Base>1.Source
git.pl  -- Run GIT commandsShow source
heaps.pl  -- heaps/priority queuesShow source
help.plShow source
apropos/1Print objects from the manual whose name or summary match with Query.Source
help/0Show help for What.Source
help/1Show help for What.Source
help_text/2When Predicate is a term of the form Name/Arity for which documentation exists, HelpText is the documentation in textual format (parsed from the HTML help).Source
show_html_hook/1Hook called to display the extracted HTML document.Source
increval.pl  -- Incremental dynamic predicate modificationShow source
intercept.pl  -- Intercept and signal interfaceShow source
iostream.pl  -- Utilities to deal with streamsShow source
close_any/1Execute the Close closure returned by open_any/5.Source
open_any/5Establish a stream from Specification that should be closed using Close, which can either be called or passed to close_any/1.Source
lazy_lists.pl  -- Lazy list handlingShow source
listing.pl  -- List programs and pretty print clausesShow source
lists.plShow source
append/2Concatenate a list of lists.Source
append/3List1AndList2 is the concatenation of List1 and List2.Source
clumped/2Pairs is a list of Item-Count pairs that represents the run length encoding of Items.Source
delete/3Delete matching elements from a list.Source
flatten/2Is true if FlatList is a non-nested version of NestedList.Source
intersection/3True if Set3 unifies with the intersection of Set1 and Set2.Source
is_set/1True if Set is a proper list without duplicates.Source
last/2Succeeds when Last is the last element of List.Source
list_to_set/2True when Set has the same elements as List in the same order.Source
max_list/2True if Max is the largest number in List.Source
max_member/2True when Max is the largest member in the standard order of terms.Source
max_member/3True when Max is the largest member according to Pred, which must be a 2-argument callable that behaves like (@=<)/2.Source
member/2True if Elem is a member of List.Source
min_list/2True if Min is the smallest number in List.Source
min_member/2True when Min is the smallest member in the standard order of terms.Source
min_member/3True when Min is the smallest member according to Pred, which must be a 2-argument callable that behaves like (@=<)/2.Source
nextto/3True if Y directly follows X in List.Source
nth0/3True when Elem is the Index'th element of List.Source
nth0/4Select/insert element at index.Source
nth1/3Is true when Elem is the Index'th element of List.Source
nth1/4As nth0/4, but counting starts at 1.Source
numlist/3List is a list [Low, Low+1, ... High].Source
permutation/2True when Xs is a permutation of Ys.Source
prefix/2True iff Part is a leading substring of Whole.Source
proper_length/2True when Length is the number of elements in the proper list List.Source
reverse/2Is true when the elements of List2 are in reverse order compared to List1.Source
same_length/2Is true when List1 and List2 are lists with the same number of elements.Source
select/3Is true when List1, with Elem removed, results in List2.Source
select/4Select from two lists at the same position.Source
selectchk/3Semi-deterministic removal of first element in List that unifies with Elem.Source
selectchk/4Semi-deterministic version of select/4.Source
subseq/3Is true when SubList contains a subset of the elements of List in the same order and Complement contains all elements of List not in SubList, also in the order they appear in List.Source
subset/2True if all elements of SubSet belong to Set as well.Source
subtract/3Delete all elements in Delete from Set.Source
sum_list/2Sum is the result of adding all numbers in List.Source
union/3True if Set3 unifies with the union of the lists Set1 and Set2.Source
main.pl  -- Provide entry point for scriptsShow source
make.pl  -- Reload modified source filesShow source
modules.pl  -- Module utility predicatesShow source
nb_set.plShow source
add_nb_set/2Insert Key into the set.Source
add_nb_set/3Insert Key into the set.Source
empty_nb_set/1Create an empty non-backtrackable set.Source
gen_nb_set/2Enumerate the members of a set in the standard order of terms.Source
nb_set_to_list/2Get the elements of a an nb_set.Source
size_nb_set/2Unify Size with the number of elements in the set.Source
occurs.plShow source
contains_term/2Succeeds if Sub is contained in Term (=, deterministically).Source
contains_var/2Succeeds if Sub is contained in Term (==, deterministically).Source
free_of_term/2Succeeds of Sub does not unify to any subterm of Term.Source
free_of_var/2Succeeds of Sub is not equal (==) to any subterm of Term.Source
occurrences_of_term/3Count the number of SubTerms in Term that unify with SubTerm.Source
occurrences_of_var/3Count the number of SubTerms in Term that are equal to SubTerm.Source
sub_term/2Generates (on backtracking) all subterms of Term.Source
sub_term_shared_variables/3If Sub is a sub term of Term, Vars is bound to the list of variables in Sub that also appear outside Sub in Term.Source
sub_var/2Generates (on backtracking) all subterms (==) of Term.Source
operators.pl  -- Manage operatorsShow source
option.plShow source
dict_options/2Convert between an option list and a dictionary.Source
merge_options/3Merge two option sets.Source
meta_options/3Perform meta-expansion on options that are module-sensitive.Source
option/2Get an Option from Options.Source
option/3Get an Option from Options.Source
select_option/3Get and remove Option from Options.Source
select_option/4Get and remove Option with default value.Source
optparse.pl  -- command line parsingShow source
ordsets.plShow source
is_ordset/1True if Term is an ordered set.Source
list_to_ord_set/2Transform a list into an ordered set.Source
ord_add_element/3Insert an element into the set.Source
ord_del_element/3Delete an element from an ordered set.Source
ord_disjoint/2True if Set1 and Set2 have no common elements.Source
ord_empty/1True when List is the empty ordered set.Source
ord_intersect/2True if both ordered sets have a non-empty intersection.Source
ord_intersect/3Intersection holds the common elements of Set1 and Set2.Source
ord_intersection/2Intersection of a powerset.Source
ord_intersection/3Intersection holds the common elements of Set1 and Set2.Source
ord_intersection/4Intersection and difference between two ordered sets.Source
ord_memberchk/2True if Element is a member of OrdSet, compared using ==.Source
ord_selectchk/3Selectchk/3, specialised for ordered sets.Source
ord_seteq/2True if Set1 and Set2 have the same elements.Source
ord_subset/2Is true if all elements of Sub are in Super.Source
ord_subtract/3Diff is the set holding all elements of InOSet that are not in NotInOSet.Source
ord_symdiff/3Is true when Difference is the symmetric difference of Set1 and Set2.Source
ord_union/2True if Union is the union of all elements in the superset SetOfSets.Source
ord_union/3Union is the union of Set1 and Set2.Source
ord_union/4True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).Source
pairs.pl  -- Operations on key-value listsShow source
persistency.pl  -- Provide persistent dynamic predicatesShow source
pio.pl  -- Pure I/OShow source
portray_text.plShow source
portray_text/1Switch portraying on or off.Source
set_portray_text/2Set options for portraying.Source
set_portray_text/3Set options for portraying.Source
pprint.pl  -- Pretty Print Prolog termsShow source
predicate_options.pl  -- Access and analyse predicate optionsShow source
prolog_autoload.plShow source
autoload_all/0Force all necessary autoloading to be done now.Source
autoload_all/1Force all necessary autoloading to be done now.Source
prolog_breakpoints.pl  -- Manage Prolog break-pointsShow source
prolog_clause.plShow source
clause_info/4Fetches source information for the given clause.Source
clause_info/5Fetches source information for the given clause.Source
clause_name/2Provide a suitable description of the indicated clause.Source
initialization_layout/4Find term-layout of :- initialization directives.Source
make_varnames/5Create a Term varnames(...) where each argument contains the name of the variable at that offset.Source
open_source/2Hook into clause_info/5 that opens the stream holding the source for a specific clause.Source
predicate_name/2Describe a predicate as [Module:]Name/Arity.Source
unify_goal/5This hook is called to fix up source code manipulations that result from goal expansions.Source
unify_term/2Unify the two terms, where T2 is created by writing the term and reading it back in, but be aware that rounding problems may cause floating point numbers not to unify.Source
prolog_code.pl  -- Utilities for reasoning about codeShow source
prolog_codewalk.pl  -- Prolog code walkerShow source
prolog_colour.pl  -- Prolog syntax colouring support.Show source
prolog_config.plShow source
prolog_config/2Get information on the configuration of the current Prolog system.Source
prolog_dump_runtime_variables/0Dump the current configuration in shell format.Source
prolog_coverage.pl  -- Coverage analysis toolShow source
prolog_debug.pl  -- User level debugging toolsShow source
prolog_format.pl  -- Analyse format specificationsShow source
prolog_jiti.pl  -- Just In Time Indexing (JITI) utilitiesShow source
prolog_metainference.plShow source
infer_meta_predicate/2True when MetaSpec is a meta-predicate specifier for the predicate Head.Source
inferred_meta_predicate/2True when MetaSpec is an inferred meta-predicate specification for Head.Source
prolog_pack.pl  -- A package manager for PrologShow source
prolog_profile.plShow source
profile/1Run once(Goal) under the execution profiler.Source
profile/2Run once(Goal) under the execution profiler.Source
profile_data/1Gather all relevant data from profiler.Source
profile_procedure_data/2Collect data for Pred.Source
show_profile/1Display last collected profiling data.Source
prolog_source.pl  -- Examine Prolog source-filesShow source
prolog_stack.pl  -- Examine the Prolog stackShow source
prolog_versions.plShow source
cmp_versions/3Compare to versions.Source
require_prolog_version/2Claim that the running Prolog version is at least version Required and provides the requested Features.Source
require_version/3Require Component to have version CmpRequired, while Component is know to have version Available.Source
prolog_wrap.plShow source
current_predicate_wrapper/4True if Head is wrapped with Body.Source
unwrap_predicate/2Remove the outermost wrapper whose name unifies with Name.
wrap_predicate/4Wrap the predicate referenced by Head using Body.Source
prolog_xref.pl  -- Prolog cross-referencer data collectionShow source
pure_input.pl  -- Pure Input from files and streamsShow source
quasi_quotations.pl  -- Define Quasi Quotation syntaxShow source
quintus.pl  -- Quintus compatibilityShow source
random.pl  -- Random numbersShow source
rbtrees.pl  -- Red black treesShow source
is_rbtree/1True if Term is a valid Red-Black tree.Source
list_to_rbtree/2Tree is the red-black tree corresponding to the mapping in List, which should be a list of Key-Value pairs.Source
ord_list_to_rbtree/2Tree is the red-black tree corresponding to the mapping in list List, which should be a list of Key-Value pairs.Source
rb_apply/4If the value associated with key Key is Val0 in Tree, and if call(G,Val0,ValF) holds, then NewTree differs from Tree only in that Key is associated with value ValF in tree NewTree.Source
rb_clone/3`Clone' the red-back tree TreeIn into a new tree TreeOut with the same keys as the original but with all values set to unbound values.Source
rb_del_max/4Delete the largest element from the tree Tree, returning the key Key, the value Val associated with the key and a new tree NewTree.Source
rb_del_min/4Delete the least element from the tree Tree, returning the key Key, the value Val associated with the key and a new tree NewTree.Source
rb_delete/3Delete element with key Key from the tree Tree, returning the value Val associated with the key and a new tree NewTree.Source
rb_delete/4Same as rb_delete(Tree, Key, NewTree), but also unifies Val with the value associated with Key in Tree.Source
rb_empty/1Succeeds if Tree is an empty Red-Black tree.Source
rb_fold/4Fold the given predicate over all the key-value pairs in Tree, starting with initial state State0 and returning the final state State.Source
rb_in/3True when Key-Value is a key-value pair in red-black tree Tree.Source
rb_insert/4Add an element with key Key and Value to the tree Tree creating a new red-black tree NewTree.Source
rb_insert_new/4Add a new element with key Key and Value to the tree Tree creating a new red-black tree NewTree.Source
rb_keys/2Keys is unified with an ordered list of all keys in the Red-Black tree Tree.Source
rb_lookup/3True when Value is associated with Key in the Red-Black tree Tree.Source
rb_map/2True if call(Goal, Value) is true for all nodes in T.Source
rb_map/3For all nodes Key in the tree Tree, if the value associated with key Key is Val0 in tree Tree, and if call(G,Val0,ValF) holds, then the value associated with Key in NewTree is ValF.Source
rb_max/3Key is the maximal key in Tree, and is associated with Val.Source
rb_min/3Key is the minimum key in Tree, and is associated with Val.Source
rb_new/1Create a new Red-Black tree Tree.Source
rb_next/4Next is the next element after Key in Tree, and is associated with Val.Source
rb_partial_map/4For all nodes Key in Keys, if the value associated with key Key is Val0 in tree Tree, and if call(G,Val0,ValF) holds, then the value associated with Key in NewTree is ValF, otherwise it is the value associated with the key in Tree.Source
rb_previous/4Previous is the previous element after Key in Tree, and is associated with Val.Source
rb_size/2Size is the number of elements in Tree.Source
rb_update/4Tree NewTree is tree Tree, but with value for Key associated with NewVal.Source
rb_update/5Same as rb_update(Tree, Key, NewVal, NewTree) but also unifies OldVal with the value associated with Key in Tree.Source
rb_visit/2Pairs is an infix visit of tree Tree, where each element of Pairs is of the form Key-Value.Source
readln.plShow source
readutil.pl  -- Read utilitiesShow source
record.pl  -- Access compound arguments by nameShow source
sandbox.plShow source
settings.pl  -- Setting managementShow source
shell.plShow source
cd/0Change working directory.Source
cd/1Change working directory.Source
dirs/0Manage the directory stack:.Source
file_style/2True when File should be listed as a terminal hyperlink.Source
ls/0Listing similar to Unix =ls -F=, flagging directories with =/=.Source
ls/1Listing similar to Unix =ls -F=, flagging directories with =/=.Source
mv/2Move (Rename) a file.Source
popd/0Manage the directory stack:.Source
pushd/0Manage the directory stack:.Source
pushd/1Manage the directory stack:.Source
pwd/0Print current working directory.Source
rm/1Remove (unlink) a file.Source
shell/0Execute an interactive shell.Source
shlib.pl  -- Utility library for loading foreign objects (DLLs, shared objects)Show source
solution_sequences.pl  -- Modify solution sequencesShow source
sort.plShow source
locale_sort/2Sort a list of atoms using the current locale.Source
predsort/3Sorts similar to sort/2, but determines the order of two terms by calling Compare(-Delta, +E1, +E2).Source
statistics.pl  -- Get information about resource usageShow source
streams.pl  -- Manage Prolog streamsShow source
strings.pl  -- String utilitiesShow source
system.pl  -- System utilitiesShow source
tables.pl  -- XSB interface to tablesShow source
terms.pl  -- Term manipulationShow source
thread.pl  -- High level thread primitivesShow source
thread_pool.pl  -- Resource bounded thread managementShow source
threadutil.pl  -- Interactive thread utilitiesShow source
tty.pl  -- Terminal operationsShow source
ugraphs.pl  -- Graph manipulation libraryShow source
url.pl  -- Analysing and constructing URLShow source
utf8.pl  -- UTF-8 encoding/decoding on lists of character codes.Show source
varnumbers.pl  -- Utilities for numbered termsShow source
wfs.pl  -- Well Founded Semantics interfaceShow source
when.plShow source
when/2Execute Goal when Condition is satisfied.Source
writef.plShow source
swritef/2Use writef/1 or writef/2 and write the result to a string.Source
swritef/3Use writef/1 or writef/2 and write the result to a string.Source
writef/1Formatted write to the current_output.Source
writef/2Formatted write to the current_output.Source
www_browser.pl  -- Open a URL in the users browserShow source
yall.pl  -- Lambda expressionsShow source