mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			744 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			744 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# from
 | 
						|
# http://wiki.erights.org/wiki/Walnut/Ordinary_Programming/Objects_and_Functions
 | 
						|
def makeVehicle(self) {
 | 
						|
    def vehicle {
 | 
						|
        to milesTillEmpty() {
 | 
						|
            return self.milesPerGallon() * self.getFuelRemaining()
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return vehicle
 | 
						|
}
 | 
						|
 | 
						|
def makeCar() {
 | 
						|
    var fuelRemaining := 20
 | 
						|
    def car extends makeVehicle(car) {
 | 
						|
        to milesPerGallon() {return 19}
 | 
						|
        to getFuelRemaining() {return fuelRemaining}
 | 
						|
    }
 | 
						|
    return car
 | 
						|
}
 | 
						|
 | 
						|
def makeJet() {
 | 
						|
    var fuelRemaining := 2000
 | 
						|
    def jet extends makeVehicle(jet) {
 | 
						|
        to milesPerGallon() {return 2}
 | 
						|
        to getFuelRemaining() {return fuelRemaining}
 | 
						|
    }
 | 
						|
    return jet
 | 
						|
}
 | 
						|
 | 
						|
def car := makeCar()
 | 
						|
println(`The car can go ${car.milesTillEmpty()} miles.`)
 |