|
[Date Index]
[Thread Index]
[Author Index]
Re: pass by reference
- To: mathgroup at smc.vnet.net
- Subject: [mg93733] Re: [mg93685] pass by reference
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Mon, 24 Nov 2008 04:14:16 -0500 (EST)
- References: <200811221109.GAA20379@smc.vnet.net>
On Nov 22, 2008, at 6:09 AM, juan flores wrote:
> Dear all,
>
> How do you pass by reference in Mathematica?
You can't
>
> Let us say we want to program push and pop.
> --------
> Push[el_, stack_] := Prepend[stack, el]
> Pop[stack_] := {First[stack], Rest[stack]}
>
> stack = {1, 2, 3}; newel = 5;
>
> stack = Push[newel, stack]
> {5, 1, 2, 3}
>
> {lastel, stack} = Pop[stack]
> {5, {1, 2, 3}}
>
> stack
> {1, 2, 3}
> --------
>
> Code is working, but it is kind of awkward to have to use pure
> functional programming.
What do Push and Pop add for clarity's sake given the existence of
First, Rest etc.? Programming in an imperative style using
functional constructs will always be awkward since you can't change
the value of arguments to a function.
> Any pointers/ideas will be greatly appreciated.
Without more information about your problem it's hard to give much
advice, but generally if you want to write a state machine
functionally it's best expressed as functions that accept the current
state, preferably contained in a single variable, and return the next
state rather than modifying multiple variables.
Hope that helps,
Sseziwa Mukasa
Prev by Date:
RV: Re: Displaying the solution step by step in Wolfram Mathematica
Next by Date:
Re: pass by reference
Previous by thread:
pass by reference
Next by thread:
Re: pass by reference
|