comparison website/src/diff.html.luan @ 389:497d4ef0a89f

documentation work
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 24 Apr 2015 12:25:50 -0600
parents 23d075ce1e48
children bfbbce690bba
comparison
equal deleted inserted replaced
388:12ee9a336b95 389:497d4ef0a89f
129 129
130 <h4 margin-top="1em"><a name="for">For Statement</a></h4> 130 <h4 margin-top="1em"><a name="for">For Statement</a></h4>
131 131
132 <p>Luan has no numeric <b>for</b> statement. Luan only has generic <b>for</b> statement. Instead of the numeric <b>for</b> statement, Luan uses the <tt>range</tt> function in a generic <b>for</b> statement like this:</p> 132 <p>Luan has no numeric <b>for</b> statement. Luan only has generic <b>for</b> statement. Instead of the numeric <b>for</b> statement, Luan uses the <tt>range</tt> function in a generic <b>for</b> statement like this:</p>
133 133
134 <tt><pre> 134 <p><tt><pre>
135 for i in range(from,to,step) do <i>block</i> end 135 for i in range(from,to,step) do <i>block</i> end
136 </pre></tt> 136 </pre></tt></p>
137 137
138 <p>The Luan generic <b>for</b> statement is simpler than the Lua version because Luan only uses and expression, not an explist. So a <b>for</b> statement like:</p> 138 <p>The Luan generic <b>for</b> statement is simpler than the Lua version because Luan only uses and expression, not an explist. So a <b>for</b> statement like:</p>
139 139
140 <tt><pre> 140 <p><tt><pre>
141 for var_1, ···, var_n in exp do block end 141 for var_1, ···, var_n in exp do block end
142 </pre></tt> 142 </pre></tt></p>
143 143
144 <p>is equivalent to the code:</p> 144 <p>is equivalent to the code:</p>
145 145
146 <tt><pre> 146 <p><tt><pre>
147 do 147 do
148 local f = exp 148 local f = exp
149 while true do 149 while true do
150 local var_1, ···, var_n = f() 150 local var_1, ···, var_n = f()
151 if var_1 == nil then break end 151 if var_1 == nil then break end
152 block 152 block
153 end 153 end
154 end 154 end
155 </pre></tt> 155 </pre></tt></p>
156 156
157 <h4 margin-top="1em"><a name="logical">Logical Statements</a></h4> 157 <h4 margin-top="1em"><a name="logical">Logical Statements</a></h4>
158 158
159 <p>Unlike Lua, Luan allows <b>or</b> and <b>and</b> expressions to be stand-alone statements. This is useful in cases like this:</p> 159 <p>Unlike Lua, Luan allows <b>or</b> and <b>and</b> expressions to be stand-alone statements. This is useful in cases like this:</p>
160 160
161 <tt><pre> 161 <p><tt><pre>
162 x==5 or error "x should be 5" 162 x==5 or error "x should be 5"
163 </pre></tt> 163 </pre></tt></p>
164 164
165 <h4 margin-top="1em"><a name="template-stmt">Template Statements</a></h4> 165 <h4 margin-top="1em"><a name="template-stmt">Template Statements</a></h4>
166 166
167 <p>Template statements are based on <a href="#template-expr">template exressions</a> and provide the full equivalent of <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> but in a general way. Template statements write the equivalent template exression to standard output. For example:</p> 167 <p>Template statements are based on <a href="#template-expr">template exressions</a> and provide the full equivalent of <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> but in a general way. Template statements write the equivalent template exression to standard output. For example:</p>
168 168
169 <tt><pre><%=Html.encode[[ 169 <p><tt><pre><%=Html.encode[[
170 local name = "Bob" 170 local name = "Bob"
171 %> 171 %>
172 Hello <%=name%>! 172 Hello <%=name%>!
173 Bye <%=name%>. 173 Bye <%=name%>.
174 <% 174 <%
175 ]]%></pre></tt> 175 ]]%></pre></tt></p>
176 176
177 <p>is equivalent to the code:</p> 177 <p>is equivalent to the code:</p>
178 178
179 <tt><pre><%=Html.encode[[ 179 <p><tt><pre><%=Html.encode[[
180 local name = "Bob" 180 local name = "Bob"
181 require("luan:Io").stdout.write( %> 181 require("luan:Io").stdout.write( %>
182 Hello <%=name%>! 182 Hello <%=name%>!
183 Bye <%=name%>. 183 Bye <%=name%>.
184 <% ) 184 <% )
185 ]]%></pre></tt> 185 ]]%></pre></tt></p>
186 186
187 <h3 margin-top="1em"><a name="expr">Expressions</a></h3> 187 <h3 margin-top="1em"><a name="expr">Expressions</a></h3>
188 188
189 <h4 margin-top="1em"><a name="bit">Bitwise Operators</a></h4> 189 <h4 margin-top="1em"><a name="bit">Bitwise Operators</a></h4>
190 190
200 200
201 <h4 margin-top="1em"><a name="template-expr">Template Expressions</a></h4> 201 <h4 margin-top="1em"><a name="template-expr">Template Expressions</a></h4>
202 202
203 <p>Luan adds a new type of expression based on <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> called template expressions. Template expressions return multiple values. Here is an example:</p> 203 <p>Luan adds a new type of expression based on <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> called template expressions. Template expressions return multiple values. Here is an example:</p>
204 204
205 <tt><pre><%=Html.encode[[ 205 <p><tt><pre><%=Html.encode[[
206 local name = "Bob" 206 local name = "Bob"
207 write( %>Hello <%=name%>!<% ) 207 write( %>Hello <%=name%>!<% )
208 ]]%></pre></tt> 208 ]]%></pre></tt></p>
209 209
210 <p>This is equivalent to the code:</p> 210 <p>This is equivalent to the code:</p>
211 211
212 <tt><pre> 212 <p><tt><pre>
213 local name = "Bob" 213 local name = "Bob"
214 write( "Hello ", name, "!" ) 214 write( "Hello ", name, "!" )
215 </pre></tt> 215 </pre></tt></p>
216 216
217 <p>The strings in template expressions may be multiple lines.</p> 217 <p>The strings in template expressions may be multiple lines.</p>
218 218
219 </div> 219 </div>
220 220