Through learning R, I just came across the following code explained here. 
open.account <- function(total) {
  list(
    deposit = function(amount) {
      if(amount <= 0)
        stop("Deposits must be positive!\n")
      total <<- total + amount
      cat(amount, "deposited.  Your balance is", total, "\n\n")
    },
    withdraw = function(amount) {
      if(amount > total)
        stop("You don't have that much money!\n")
      total <<- total - amount
      cat(amount, "withdrawn.  Your balance is", total, "\n\n")
    },
    balance = function() {
      cat("Your balance is", total, "\n\n")
    }
  )
}
ross <- open.account(100)
robert <- open.account(200)
ross$withdraw(30)
ross$balance()
robert$balance()
ross$deposit(50)
ross$balance()
ross$withdraw(500)
What is the most of my interest about this code, learning the use of "$" dollar sign which refer to an specific internal function in  open.account() function. I mean this part :
    ross$withdraw(30)
    ross$balance()
    robert$balance()
    ross$deposit(50)
    ross$balance()
    ross$withdraw(500)
Questions: 
1-  What is the meaning of the dollar sign "$" in R function() ? 
 
2-  How to identify its attributes in functions, specially for the functions that you adopting from other (i.e. you did not write it)?
 
I used the following script 
> grep("$", open.account())
[1] 1 2 3
but it is not useful I want to find a way to extract the name(s) of internal functions that can be refer by "$" without just by calling and searching the written code as  > open.account() . 
  For instance in case of open.account() I'd like to see something like this:
$deposit
$withdraw
$balance
3- Is there any reference that I can read more about it? 
tnx!