Skip to content

OpenModelica/DoubleEnded.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoubleEnded

A Double ended mutable list for Julia

This package provides a DoubleEnded mutable list. It is provided to be used in conjunction with the singly linked immutable list, provided in ImmutableList.jl.

This package contains the defintion along with various utility methods to get the head and the tail in constant time.

MutableList

MutableList is a single linked and double ended list.

  • Usage:
  lst1::List = nil
  dLst1::DoubleEnded.MutableList = DoubleEnded.fromList(lst1) #Creates an empty double ended list
  dLst2::DoubleEnded.MutableList = DoubleEnded.empty #Same as above
  #Creates a double ended list from the immutable list (1,2,3)
  dLst2::DoubleEnded.MutableList = DoubleEnded.fromList(ImmutableList.list(1,2,3))
  • Utility functions:
"""
  Creates a new Mutable list with one element, first of type T.
"""
new

"""
  Converts an Immutable list, lst into an MutableList.
"""
fromList

"""
  Creates a new empty MutableList
"""
empty

"""
  Returns the length of the MutableList, delst
"""
length

"""
  Pops and returns the first element of the MutableList, delst.
"""
pop_front
"""
  Returns the current back cell of the MutableList, delst.
"""
currentBackCell

"""
  Prepends an element elt at the front of the MutableList delst.
"""
push_front

"""
  Prepends the immutable list lst at the front of the MutableList, delst.
"""
push_list_front

"""
  Pushes an element elt at the back of the mutable list delst.
"""
push_back

"""
  Appends the ImmutableList lst at the back of the MutableList delst.
"""
push_list_back

"""
  Returns an immutable List and clears the MutableList
"""
toListAndClear

"""
  Returns an Immutable list without changing the MutableList.
"""
toListNoCopyNoClear

"""
  Resets the MutableList.
"""
clear

"""
  This function takes a higher order function(inMapFunc) and one argument(ArgT1).
  It applies these function to each element in the list mutating it and by doing so updating
  the list.
"""
mapNoCopy_1

"""
  This functions folds a MutableList, delst using inMapFunc together with the extra argument arg.
"""
mapFoldNoCopy

About

Implementation of a DoubleEndedList for Julia

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages