{"id":1335,"date":"2022-01-04T21:41:28","date_gmt":"2022-01-05T05:41:28","guid":{"rendered":"https:\/\/gantovnik.com\/bio-tips\/?p=1335"},"modified":"2022-01-04T21:41:28","modified_gmt":"2022-01-05T05:41:28","slug":"133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2","status":"publish","type":"post","link":"https:\/\/gantovnik.com\/bio-tips\/2022\/01\/133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/","title":{"rendered":"#248 Create a recursive procedure in tcl"},"content":{"rendered":"<p>An example of a recursive procedure is <\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nproc factorial {number} {\r\n  if {$number &lt;= 1} {\r\n    return 1\r\n  }\r\n  return &#x5B;expr $number * &#x5B;factorial &#x5B;expr $number - 1]]]\r\n}\r\nputs &#x5B;factorial 5]\r\nputs &#x5B;factorial 10]\r\n<\/pre>\n<p>Result:<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n120\r\n3628800\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>An example of a recursive procedure is proc factorial {number} { if {$number &lt;= 1} { return 1 } return &#x5B;expr $number * &#x5B;factorial &#x5B;expr $number &#8211; 1]]] } puts &#x5B;factorial 5] puts &#x5B;factorial 10] Result: 120 3628800<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"yes","_lmt_disable":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[27],"tags":[],"class_list":["post-1335","post","type-post","status-publish","format-standard","hentry","category-tcl"],"modified_by":"gantovnik","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8bH0k-lx","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1331,"url":"https:\/\/gantovnik.com\/bio-tips\/2022\/01\/133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/","url_meta":{"origin":1335,"position":0},"title":"#246 Create a procedure with variable number of arguments in tcl","author":"gantovnik","date":"2022-01-04","format":false,"excerpt":"An example of a procedure with variable number of arguments is [code language=\"python\"] proc avg {numbers} { set sum 0 foreach number $numbers { set sum [expr $sum + $number] } set average [expr $sum\/[llength $numbers]] return $average } puts [avg {50 50 50 60}] puts [avg {50 50 50}]\u2026","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1351,"url":"https:\/\/gantovnik.com\/bio-tips\/2022\/01\/133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/","url_meta":{"origin":1335,"position":1},"title":"#255 Returning multiple values from a procedure in tcl","author":"gantovnik","date":"2022-01-05","format":false,"excerpt":"The return command passes one value to the caller. There is often a need to return multiple values. In such cases, we can return a list. Example: [code language=\"python\"] proc RandomNumbers {} { set r1 [expr round(100*rand())] set r2 [expr round(100*rand())] return [list $r1 $r2] } puts [RandomNumbers] [\/code] Result:\u2026","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1333,"url":"https:\/\/gantovnik.com\/bio-tips\/2022\/01\/133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/","url_meta":{"origin":1335,"position":2},"title":"#247 Create a procedure with default arguments in tcl","author":"gantovnik","date":"2022-01-04","format":false,"excerpt":"An example of a procedure with procedure with default arguments is [code language=\"python\"] proc add {a {b 2000} } { return [expr $a+$b] } puts [add 22 10] puts [add 22] [\/code] Result: [code language=\"python\"] 32 2022 [\/code]","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1329,"url":"https:\/\/gantovnik.com\/bio-tips\/2022\/01\/133-create-vectors-and-planes-using-tcl-in-hypermesh-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/","url_meta":{"origin":1335,"position":3},"title":"#245 Create a procedure with multiple arguments in tcl","author":"gantovnik","date":"2022-01-04","format":false,"excerpt":"An example for procedure with multiple arguments is [code language=\"python\"] proc add {a b} { return [expr $a+$b] } puts [add 2000 22] [\/code] Result: [code language=\"python\"] 2022 [\/code]","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":753,"url":"https:\/\/gantovnik.com\/bio-tips\/2020\/10\/127-tcl-function-with-default-arguments\/","url_meta":{"origin":1335,"position":4},"title":"#126: tcl function with default arguments","author":"gantovnik","date":"2020-10-08","format":false,"excerpt":"#126: tcl function with default arguments [code language=\"python\"] proc add {a {b 5}} { return [expr $a+$b] } puts [add 10 12] puts [add 12] [\/code] Output: [code language=\"python\"] 22 17 [\/code]","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":620,"url":"https:\/\/gantovnik.com\/bio-tips\/2020\/09\/95-while-loop-in-tcl\/","url_meta":{"origin":1335,"position":5},"title":"#95 While loop in tcl","author":"gantovnik","date":"2020-09-15","format":false,"excerpt":"#95 While loop in tcl [code language=\"python\"] set x 1 # This is a normal way to write a tcl while loop. while {$x < 5} { puts \"x is $x\" set x [expr {$x + 1}] } puts \"exited first loop with x equal to $x\\n\" [\/code] Output: [code\u2026","rel":"","context":"In &quot;tcl&quot;","block_context":{"text":"tcl","link":"https:\/\/gantovnik.com\/bio-tips\/category\/tcl\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/posts\/1335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/comments?post=1335"}],"version-history":[{"count":0,"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/posts\/1335\/revisions"}],"wp:attachment":[{"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/media?parent=1335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/categories?post=1335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gantovnik.com\/bio-tips\/wp-json\/wp\/v2\/tags?post=1335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}