MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Problem with HoldForm & Unevaluated

  • To: mathgroup at smc.vnet.net
  • Subject: [mg94525] Re: Problem with HoldForm & Unevaluated
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Mon, 15 Dec 2008 07:48:00 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <gi2umq$9vg$1@smc.vnet.net>

Syd Geraghty wrote:
> Hi all,
> 
> A seemingly simple function has me baffled and I would appreciate a  
> solution.
> 
> I am trying to define a personal print function that prints  
> "Unevaluated function string" = Evaluated function!
> 
> I have tried many examples in guide/EvaluationControl documentation  
> without getting what I want.
> 
> A simple example;
> 
> printf[fn_] := Print[HoldForm[fn], " = ", fn];
> 
> printf[Rationalize /@ {-1.7, 1.39646, -0.37188}]
> 
> Print[HoldForm[Rationalize /@ {-1.7, 1.39646, -0.37188}], " = ",
>   Rationalize /@ {-1.7, 1.39646, -0.37188}]
> 
> gives the LHS evaluated:
> 
> {-(17/10),69823/50000,-(9297/25000)} = {-(17/10),69823/50000,- 
> (9297/25000)}
> 
> Instead of the hoped for output:
> 
> Rationalize/@{-1.7,1.39646,-0.37188} = {-(17/10),69823/50000,- 
> (9297/25000)}
> 
> Using Unevaluated seemed to me should fix it but does not.
> 
> Thanks in advance for your help.
> 
> Cheers ... Syd
> 
> PS I've tried Mathematica 5.2 as well as 7.0
> 
> 
> 
> Syd Geraghty B.Sc, M.Sc.
> 
> sydgeraghty at mac.com
> 
> Mathematica 7.0.0 for Mac OS X x86 (64 - bit) (21st November, 2008)
> MacOS X V 10.5.4
> MacBook Pro 2.33 Ghz Intel Core 2 Duo  2GB RAM

Syd,

FWIW, I am clueless about where the problem lies on your systems, but I 
have got the expected result/behavior on two different platforms (6.0.3 
on 64-bit Mac OS X 10.5.5 and 7.0 on 32-bit Windows XP Pro SP3).

In[1]:= Print[
  HoldForm[Rationalize /@ {-1.7, 1.39646, -0.37188}], " = ",
  Rationalize /@ {-1.7, 1.39646, -0.37188}]

During evaluation of In[1]:= Rationalize/@{-1.7,1.39646,-0.37188} = \
{-(17/10),69823/50000,-(9297/25000)}

In[2]:= HoldForm[Rationalize /@ {-1.7, 1.39646, -0.37188}] ==
  Rationalize /@ {-1.7, 1.39646, -0.37188}

Out[2]= 
Rationalize/@{-1.7,1.39646,-0.37188}=={-(17/10),69823/50000,-(9297/25000)}

In[3]:= $Version

Out[3]= "6.0 for Mac OS X x86 (64-bit) (May 21, 2008)"

In[1]:= Print[
  HoldForm[Rationalize /@ {-1.7, 1.39646, -0.37188}], " = ",
  Rationalize /@ {-1.7, 1.39646, -0.37188}]

During evaluation of In[1]:= Rationalize/@{-1.7,1.39646,-0.37188} = 
{-(17/10),69823/50000,-(9297/25000)}

In[2]:= HoldForm[Rationalize /@ {-1.7, 1.39646, -0.37188}] ==
  Rationalize /@ {-1.7, 1.39646, -0.37188}

Out[2]= 
Rationalize/@{-1.7,1.39646,-0.37188}=={-(17/10),69823/50000,-(9297/25000)}

In[3]:= $Version

Out[3]= "7.0 for Microsoft Windows (32-bit) (November 10, 2008)"

Regards,
-- Jean-Marc


  • Prev by Date: Re: Re: Re: FiniteGroupData[]
  • Next by Date: A version of With that binds variables sequentially
  • Previous by thread: RE: Problem with HoldForm & Unevaluated
  • Next by thread: Beginner: List Indexing and Assignment