<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: [Swift-user] two questions about Swift</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>You can use R, the stat program.  That works with Swift.<BR>
<BR>
There is a tutorial that Mike can point you to.<BR>
<BR>
Thanks,<BR>
Erin<BR>
<BR>
<BR>
Erin M. Hodgess, PhD<BR>
Associate Professor<BR>
Department of Computer and Mathematical Sciences<BR>
University of Houston - Downtown<BR>
mailto: hodgesse@uhd.edu<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: swift-user-bounces@ci.uchicago.edu on behalf of wilde@mcs.anl.gov<BR>
Sent: Tue 2/16/2010 11:12 AM<BR>
To: Yi Zhu<BR>
Cc: swift-user@ci.uchicago.edu<BR>
Subject: Re: [Swift-user] two questions about Swift<BR>
<BR>
Yi, sorry - I missed these questions from you; just saw them now.<BR>
<BR>
----- "Yi Zhu" <yizhu@cs.uchicago.edu> wrote:<BR>
<BR>
> Hi all<BR>
><BR>
> I have two questions about swift:<BR>
><BR>
> 1. conventional loop:  In swift, we can use foreach to parallel apps,<BR>
><BR>
> but what If I just need a conventional loop, like a regular "for" or<BR>
> "while" in java?<BR>
<BR>
No, thats somewhat limited at the moment. We can consider this for future revisions. There were a variety of differing views on what control statements Swift should offer.<BR>
<BR>
><BR>
> 2.  In Matlab, there are some library which support some Math<BR>
> functions<BR>
> like "sin" "cos" "reshape" etc. Is there any similar library available<BR>
><BR>
> for swift. If not, is there anyway to import external library? (e.g.<BR>
> from Java)<BR>
<BR>
I have experimented with techniques for building a library of useful functions by using simple app() functions that do their work using a variety of shell commands and scripts.<BR>
<BR>
Pasted below is one of my experiments; Im not sure if all the functions in it work, but it should serve as a guide for *one* way of doing this.<BR>
<BR>
At the same time, a guide for extending the set of built-in primitives would be useful as well, as these can bend the data typing rules in useful ways, whereas the app() approach to building lib functions can not (so you often wind up with a lot fo explicit "casting" functions to e.g. jump between numbers and strings).<BR>
<BR>
- Mike<BR>
<BR>
---<BR>
<BR>
login1$ cat stringlib.swift<BR>
<BR>
type file;<BR>
<BR>
// Lib functions<BR>
<BR>
app (file o) echoi (int i)     { echo i stdout=@o;}<BR>
app (file o) echof (float f)   { echo f stdout=@o;}<BR>
app (file o) echob (boolean b) { echo b stdout=@o;}<BR>
app (file o) echos (string s)  { echo s stdout=@o;}<BR>
<BR>
(string s) itostr (int i)<BR>
{<BR>
  file f;<BR>
  f = echoi(i);<BR>
  s = readData(f);<BR>
}<BR>
<BR>
(string s) ftostr (float n)<BR>
{<BR>
  file f;<BR>
  f = echof(n);<BR>
  s = readData(f);<BR>
}<BR>
<BR>
(float n) strtof (string s)<BR>
{<BR>
  file f;<BR>
  f = echos(s);<BR>
  n = readData(f);<BR>
}<BR>
<BR>
app (file o) sprintfsApp (string fmt, string e[])<BR>
{<BR>
  sprintfs fmt e stdout=@o;<BR>
}<BR>
<BR>
(string s) sprintfs (string fmt, string e[])<BR>
{<BR>
  file f;<BR>
  f = sprintfsApp(fmt,e);<BR>
  s = readData(f);<BR>
}<BR>
<BR>
<BR>
// Tests<BR>
<BR>
test_sprintf()<BR>
{<BR>
  string s0 = sprintfs("%.10d",["123"]);<BR>
<BR>
  trace(s0);<BR>
<BR>
  string s1 = sprintfs("input/protein.%s.%.10d",["T1ubq",itostr(123)]);<BR>
<BR>
  trace(s1);<BR>
<BR>
  string s2 = sprintfs("n=%.4e",[ftostr(3.34e06)]);<BR>
<BR>
  trace(s2);<BR>
}<BR>
<BR>
test_converters()<BR>
{<BR>
  float f = strtof("123.456");<BR>
  trace("strtof(123.456)", f);<BR>
}<BR>
<BR>
test_converters();<BR>
login1$ swift stringlib.swift<BR>
Swift svn swift-r3202 cog-r2683<BR>
<BR>
RunID: 20100216-1108-mg4uz0v7<BR>
Progress:<BR>
SwiftScript trace: strtof(123.456), 123.456<BR>
Final status:  Finished successfully:1<BR>
login1$<BR>
<BR>
<BR>
<BR>
><BR>
> Many Thanks.<BR>
><BR>
><BR>
> -Yi<BR>
><BR>
><BR>
> _______________________________________________<BR>
> Swift-user mailing list<BR>
> Swift-user@ci.uchicago.edu<BR>
> <A HREF="http://mail.ci.uchicago.edu/mailman/listinfo/swift-user">http://mail.ci.uchicago.edu/mailman/listinfo/swift-user</A><BR>
_______________________________________________<BR>
Swift-user mailing list<BR>
Swift-user@ci.uchicago.edu<BR>
<A HREF="http://mail.ci.uchicago.edu/mailman/listinfo/swift-user">http://mail.ci.uchicago.edu/mailman/listinfo/swift-user</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>