Jump to content

List comprehensions: Difference between revisions

m
→‎{{header|REXX}}: changed comments and whitespace, optimized the inner DO loop.
m (→‎{{header|REXX}}: changed comments and whitespace, optimized the inner DO loop.)
Line 1,932:
<lang rexx>/*REXX program displays a vertical list of Pythagorean triples up to a specified number.*/
parse arg n . /*obtain optional argument from the CL.*/
if n=='' | n=="," then n=100 100 /*Not specified? Then use the default.*/
say 'Pythagorean triples (a² + b² = c², c ≤' n"):" /*display the list's title. */
$= /*assign a null to the triples list. */
do a=1 for n-2; aa=a*a /*Note: A*A is faster than A**2, but */
do b=a+1 to n-1; aabbab=aa + b*b /* ··· not by much.*/
do c=b+1 to n ; cc= c*c
if aabb==c*cab<cc then $=$leave '{'a"," || b','c"}" /*Too small? Then try the next B. */
if ab==cc then do; $=$ '{'a"," || b','c"}"; leave; end
end /*c*/
end /*b*/
end /*a*/
#= words($)
do j=1 for #
say left('', 20) word($, j) /*display a member of the list, */
end /*j*/ /* [↑] list the members vertically. */
say
say # 'members listed.' /*stick a fork in it, we're all done. */</lang>
{{out|output|text=&nbsp; when using the default input:}}
Line 2,008 ⟶ 2,010:
<lang rexx>/*REXX program displays a vertical list of Pythagorean triples up to a specified number.*/
parse arg n . /*get the optional argument from the CL*/
if n=='' | n=="," then n=100 100 /*Not specified? Then use the default.*/
say 'Pythagorean triples (a² + b² = c², c ≤' n"):" /*display the list's title. */
$= /*assign a null to the triples list. */
do a=1 for n-2; aa= a*a /*Note: A*A is faster than A**2, but */
do b=a+1 to n-1; aabbab= aa + b*b /* ··· not by much.*/
do c=b+1 to n ; cc= c*c
if aabb==c*cab<cc then $=$leave '{'a"," || b','c"}" /*Too small? Then try the next B. */
if ab==cc then do; $=$ '{'a"," || b','c"}"; leave; end
end /*c*/
end /*b*/
end /*a*/ /*stick a fork in it, we're all done. */
#= words($) /*number of members in the list. */
say; say strip($) /*show the Pythagorean triples to term.*/
say; say # 'members listed.' /*triples are listed in order of 1st #.*/</lang>
Cookies help us deliver our services. By using our services, you agree to our use of cookies.