Category talk:Unicon: Difference between revisions

m
 
(24 intermediate revisions by the same user not shown)
Line 1:
Note: This page is linked to from the [[:Category_talk:Icon]] page.
 
== How much to putgo inabout solving the language templatestasks ==
== Intent .v. Direction of tasks ==
There was an interesting discussion on [http://sourceforge.net/mailarchive/forum.php?forum_name=unicon-group the Unicon group forum] about meeting the intent .v. literacy in solving tasks. The [[Loops/Break]] task was used as a point of discussion.
 
The consensus seemed to be that we should be meeting the intent and not reading too much into the literal interpretation of the title. Unless there is specific direction within the task description we should have a free hand.
 
Thanks to Steve, Andrew, Clint, and Charles [http://sourceforge.net/mailarchive/forum.php?thread_name=4BBDFF4D.9000505%40noao.edu&forum_name=unicon-group for this and other discussions]. The overall consensus is that '''we should show our best'''. --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Style ===
We should be aiming for programs that are Icon/Unicon like. Not just for translations from something like JavaScript or Basic.
* What should be done with if we find code that looks like a bad translation of something else or even something that could better represent Icon/Unicon. Personally I think they should be replaced with examples that show how the language can be used. There may be a case for keeping them as an alternate version and calling out that it is a bad translation; however, given that this site is about showing off the essence of languages - why would you do that? --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Quality ===
There are a number of aspects of the sample programs that need improvement. These include:
 
* Commenting and documentation. Many of the examples (not just Icon/Unicon) have very little in the way of supporting comments, documentation, or description. There really should be a reasonable amount.
* In a couple of cases there are links to IPL modules. Inevitably there will be more. How best to handle these? We could copy the code into a separate code box and call it out - but this could get repetitive. I believe that we should at a minimum place an off site link to the IPL web page for the code. If the library function is the core of the solution (as in [[Input_loop#Icon|Input Loop]] then it should be included. But if the function is less important a reference should be sufficient.
::''I don't see it's necessary to give a copy of the IPL library function. To mention on the language page that the IPL exists and then link to the offsite code where applicable should be enough. Java has a huge standard library that is expected to be present with all implementations, as does C/C++ and many other languages. Task implementations gloss over the possibly hundreds of lines of library code all over Rossetacode, as this would be far too verbose and destroy the ability to make quick comparisons, more so with a large comment block for attribution.'' [[User:MattOates|MattOates]] 07:34, 7 April 2010 (UTC)
::''Fair enough I wasn't sure what the overall convention was here. In this case where the main program does almost nothing and the IPL procedure does all the heavy lifting something more seemed to be needed. Perhaps a note and brief description. Or perhaps just the link.'' --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Multiple Solutions ===
What happens when there are multiple good examples of how to solve a task with different approaches? Should we show more than one?
 
By way of example, on the [https://tapestry.tucson.az.us/twiki/bin/view/Main/StateNamesPuzzle | Unicon Twiki - States Names Problem] there are at least two different approaches to the problem. If we were to hit one of those here what to do?
 
Certainly we could talk about or refer to other solutions. But, should we show more than one? My take is that it's not unreasonable to show a couple of good alternate approaches in the same language. Just don't flood the reader. --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Constrained Tasks ===
I'm not sure how many of these there may be here. But using the [https://tapestry.tucson.az.us/twiki/bin/view/Main/LongestStringsPuzzle| Unicon Twiki - Find the longest string problem without using comparisons, math, or lists] as an example, perhaps we should introduce a few. I'd like to see how some of the more traditional languages do this :) --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Level of detail where Icon and Unicon are different ===
 
A number of task writers had taken to explaining some of the fundamental differences underlying Icon and Unicon in individual tasks. It's better to put the text into the Introduction and refer to it from the task. See:
[[Icon+Unicon/Intro|To provide detailed introduction to Unicon and Icon that can be referenced in tasks.]]
 
=== ObjectIcon, Jcon and Other variants ===
 
I recently discovered Object Icon and will set up some stub pages for it.
* There will be a link back here for this discussion
* I strongly encourage other contributors to keep all the Icon variants together under one heading set as has been done with Icon and Unicon.
 
= HELP Wanted =
== Icon/Unicon features ==
* Object oriented examples
* Graphics examples, particularly where we can show differences between Unicon and Icon
* Unicon Execution Monitoring examples, where they make sense
 
== Programming Tasks not Implemented ==
These will never end but [[Reports:Tasks_not_implemented_in_Icon|Icon - tasks not_implemented]] and [[Reports:Tasks_not_implemented_in_Unicon|Unicon - tasks not_implemented]] --[[User:Dgamey|Dgamey]] 03:10, 12 April 2010 (UTC)
 
== Easy Wins ==
I expect that many of these tasks are already coded in the Icon Programming Library or one of the Unicon packages. There are also example in the Icon and Unicon books. If you find an interesting task, check these sources first.
 
* [http://www.cs.arizona.edu/icon/library/pdx.htm The IPL permuted index of basic procedures]
* [http://www.cs.arizona.edu/icon/library/gpdx.htm The IPL permuted index of graphic procedures]
 
== Errors/Review Lists ==
See [[Template:Example-needs-review]] and [[Template:Incorrect]]. I'm not sure how you're supposed to know what is to be reviewed. Examples I've seen don;t have a lot of explanation.
 
Needs review doesn't seem to take an argument for formatting. Please add a brief note after the tag describing why. You can add more on the discussion/talk page if needed.
 
* Use <nowiki>{{improve|lang|Explanation}}</nowiki> for code improvement such as in
** <nowiki>{{improve|Unicon|The example is correct; however, Unicon implemented additional graphical features and a better example may be possible.}}</nowiki>
* Use <nowiki>{{example-needs-review|lang}}</nowiki> when the code may not meet the task description. Especially after a task description change.
* Use <nowiki>{{incorrect|lang|Explanation}}</nowiki> if the code doesn't meet the task.
 
There are a number of other related templates like improve that can be found [[:Category:Example_attention_templates]].
 
== The IPL and Uni Libraries ==
[[:Category:Solutions_by_Library]] need writing. Stubs have been created for:
 
* [[:Category:Icon_Programming_Library|The Icon Programming Library]] --> [http://www.cs.arizona.edu/icon/library/ IPL]
* [[:Category:Unicon_Code_Library|The Unicon Code Library]] --> [https://tapestry.tucson.az.us/unilib Unilib]
 
To reference these pages '''without inclusion''' on the library pages use these:
<pre>[[:Category:Icon_Programming_Library|The Icon Programming Library]]
[[:Category:Unicon_Code_Library|The Unicon Code Library]]</pre>
 
To reference library code and include the task page in the library use the [[Template:Libheader]]
<pre><nowiki>
{{libheader|Icon Programming Library}}
{{libheader|Unicon Code Library}}
</nowiki></pre>
 
Respectively these generate:
<nowiki><noinclude>{{libheader|Icon Programming Library}}</noinclude> and <noinclude>{{libheader|Unicon Code Library}}</noinclude></nowiki>
 
Notes:
* The Wiki automatically replaces spaces with underscores when constructing the link.
* Some pages in the Wiki have a 2nd parameter for libheader; however, it is not used.
 
== Unimplementable tasks ==
Mark tasks that aren't doable in Icon/Unicon as such. I believe there is an omit markup in curly braces, but I don't know much about it.
 
See [[:Category:Icon/Omit]] and [[:Category:Unicon/Omit]]
 
The syntax is <nowiki>{{omit from|language}}</nowiki>
 
* An example would be [[Address_of_a_variable|getting/setting the address of a variable]]
* Object oriented stuff in Icon
 
<pre><nowiki>{{omit from|Icon}}{{omit from|Unicon}}</nowiki></pre>
 
== Implementations ==
There are Category Pages for Implementations of other languages. There are certainly several variants that can be described for Icon including Jcon, MT Icon, IDOL, etc.
 
== Requesting Tasks ==
See [[Rosetta_Code:Village_Pump/Request_a_programming_task]]
 
= Stuff Done =
== Language Formatting ==
 
It turns out the <nowiki><lang blahblah></lang></nowiki> tags just provides syntax highlighting via something called GeSHi for syntax highlighting. Although there are Icon and Unicon tags on RC articles, there is GeSHi for either language. The details on AutoGeSHi are at http://rosettacode.org/geshi/ and maintained by user BenBE. (Thanks Mike) --[[User:Dgamey|Dgamey]] 03:10, 12 April 2010 (UTC)
* Thanks to [[User:MattOates|Matt Oates]] for getting these done --[[User:Dgamey|Dgamey]] 02:14, 20 April 2010 (UTC)
 
== Thanks ==
* Clint for valuable insight into everything
* [[User:SteveWampler]] for valuable insight into co-expressions
* [[User:MattOates|Matt Oates]] for work on the syntax coloring templates
* Art E, Andrew C
* [[User:Peter|Peter Lane]] for numerous contributions and helping us cross into the top 20!
* Anyone else I forgot?
 
= Wiki and Icon/Unicon task Formatting =
== How much to put in the language templates ==
One question that comes to mind when thinking about Rosetta Code is how much to put into the language category pages?
 
Line 10 ⟶ 133:
 
=== Category Page Language Box ===
 
I had a go at the main box. Unfortunately a lot of the terms aren't explicitly defined here.
* byte code compiled as I recall (way before Java made it popular)
Line 39 ⟶ 161:
* [[:Category:Programming_paradigm/Event-driven]] applies to the monitoring interface MT-Icon and Unicon, and probably co-expressions. Although some of the comments on the page such as about poor performance I'm not sure are apply.
* [[:Category:Programming_paradigm/Object-oriented]] Unicon
* [[:Category:Programming_paradigm/Concurrent]] may be a stretch for co-expressions; however, Unicon v12 adds support for mutexes
 
==== Clearly not applicable ====
Line 45 ⟶ 168:
 
==== Not clear / Mixed ====
* [[:Category:Programming_paradigm/Concurrent]] may be a stretch for co-expressions
* [[:Category:Programming paradigm/Declarative]] if only for OO in Unicon. SNOBOL4 patterns were given as an example of declarative but I think it's a stretch.
* [[:Category:Programming_paradigm/Dynamic]] as a paradigm seems to mean scripting but there are also references to dynamic record construction
Line 52 ⟶ 174:
 
=== Language Comparison Table ===
 
A first stab at the LCT
* paradigms = procedural, object oriented, goal-directed (not defined and is this the same as logical programming)
Line 73 ⟶ 194:
=== Other References ===
[[wp:Comparison_of_programming_languages|Wikipedia: Comparison of programming languages]]
 
=== Icon and Unicon Introduction ===
 
[[Icon+Unicon/Intro|To provide detailed introduction to Unicon and Icon that can be referenced in tasks.]]
 
== How to reasonably handle Icon .v. Union similarities and differences ==
 
=== Summary ===
 
The writeup of Icon and Unicon programs on Rosetta evolved from lone haphazard additions to a more structured approach. The rationale behind how this came to be is explained below. It is however partially constrained by the capabilities of the wiki and limitations of understanding of the wiki. It is also due to the fact that while the two languages are closely related; Unicon is mostly but not always a super-set of Icon. I hope we have finally arrived at a usable format. --[[User:Dgamey|Dgamey]] 15:40, 31 December 2010 (UTC)
 
: Conversion to this format is ongoing and proceeding alphabetically --[[User:Dgamey|Dgamey]] 14:16, 30 January 2011 (UTC)
=== Template/ How to write up Icon and Unicon markup ===
 
=== Note on templates for other variants ===
I've stubbed in categories for [[Jcon]] and [[ObjectIcon]]; however, there are no code examples for either at this time. If you plan on adding them please add the code as per the templates in the sections below using a single Icon/Jcon/ObjectIcon/Unicon header like one of these (assuming all examples are present):
<pre><nowiki>
=={{header|Icon}}, {{header|Jcon}}, {{header|ObjectIcon}}, and {{header|Unicon}}==
</nokiki></pre>
 
 
=== Template/ How to write up Icon and Unicon markup ===
As a general rule for Icon and Unicon tasks, unless there is separate code or notations about differences the code should run under both dialects.
 
Line 104 ⟶ 228:
end</lang>
 
{{libheader|Icon Programming Library}}
Output:
[http://www.cs.arizona.edu/icon/library/src/procs/XXXX.icn XXXX provides YYYY]
{{libheader|Unicon Code Library}}
 
Output:&lt;pre&gt;sample output&lt;/pre&gt;</nowiki></pre>
 
The second case is where Icon and Unicon examples are ''significantly'' different. In this case the difference will be visually obvious in task indices.
Line 124 ⟶ 250:
end</lang>
 
{{libheader|Icon Programming Library}}
Output:
[http://www.cs.arizona.edu/icon/library/src/procs/XXXX.icn XXXX provides YYYY]
{{libheader|Unicon Code Library}}
 
Output:&lt;pre&gt;sample output&lt;/pre&gt;</nowiki></pre>
 
In the third case, only one solution is presented. At this time it is unlikely there will be an Icon only case. Unicon only solutions should be presented as shown below. If it is the case that the solution isn't possible in Icon then an omit template should be coded as well. Using this structure will keep the look and feel of the task index, be properly reflected in tasks implemented/not implemented on the language category page, and allow someone to provide an Icon solution at a later date with minimal modification by converting to the second format.
Line 137 ⟶ 265:
# Unicon code
...
end</lang></nowiki></pre>
 
{{libheader|Icon Programming Library}}
[http://www.cs.arizona.edu/icon/library/src/procs/XXXX.icn XXXX provides YYYY]
{{libheader|Unicon Code Library}}
</nowiki></pre>
 
=== Template / Other Useful Markup ===
Line 143 ⟶ 276:
Use the following for IPL references. Note: if the IPL module solves the task, you should also include the critical code from the IPL so that a user of the site can see how the task was met without following offsite links. This isn't needed if the module is only incidental.
<pre><nowiki>
[http://www.cs.arizona.edu/icon/library/src/procs/XXXX.icn fibXXXX provides YYYYYYYYY]
</nowiki></pre>
 
During the header and works with cleanup I noticed IPL references are all over the place and some are not formatted nicely. Some tips/suggestions:
* The library category markup formats new lines before and after. Placing text around it will not format cleanly as a sentence. Treat it like a heading.
* The text in the offsite links is inconsistent and probably needs cleaning up. Just make clear the name of the file included and procedure names if you go to that much detail. "Uses YYYY, ZZZZ from XXXX", "Requires XXXX", and "XXXX provides YYYY" all work.
* I thought about using bullets, but it's overdoing it.
--[[User:Dgamey|Dgamey]] 14:25, 30 January 2011 (UTC)
 
==== Unimplementable ====
Use one or both of these macros if the task cannot be implemented.
Line 156 ⟶ 296:
<pre><nowiki>{{works with|Unicon}}</nowiki></pre>
 
The full syntax is below. At this point I don't see a use for this in Icon/Unicon tasks.
'''If you are cleaning up the Icon/Unicon headers, please don't remove either and add a works with. Works with appears not to add the task to the language so the category pages will be wrong. As far as I can tell the correct way is to use Works with AND to use both headers in a single line.''' Thanks (Someone in a well intended cleanup effort introduced some of these and dropped the Unicon header).
<pre><nowiki>{{works with|language|version}}</nowiki></pre>
 
'''If you are cleaning up the Icon/Unicon headers, please don't remove either and add a works with. Works with appears not to add the task to the language so the category pages will be wrong.''' Thanks (Someone in a well intended cleanup effort introduced some of these and dropped the Unicon header).
:You definitely don't need the works with template if you're using the header template for both language names. The header templates will add the task to the language categories. The works with template will only link back to the Unicon page (already linked to by the header). --[[User:Mwn3d|Mwn3d]] 16:39, 3 January 2011 (UTC)
::Thanks for clearing this up. However, the task count on most linked to pages dropped when works with was used instead of a header. --[[User:Dgamey|Dgamey]] 17:21, 3 January 2011 (UTC)
Line 164 ⟶ 307:
I really don't know what goes on behind the scene with this.
: For now I am including it in the template. --[[User:Dgamey|Dgamey]] 03:11, 3 January 2011 (UTC)
:: It's now been removed from the template. I guess I have some cleanup to do (A-JI entries). --[[User:Dgamey|Dgamey]] 17:21, 3 January 2011 (UTC)
::: cleaned up --[[User:Dgamey|Dgamey]] 14:13, 30 January 2011 (UTC)
 
--[[User:Dgamey|Dgamey]] 15:53, 31 December 2010 (UTC)
 
==== Translation of ====
<pre><nowiki>{{trans|language}}</nowiki></pre>
--[[User:Dgamey|Dgamey]] 11:10, 23 June 2011 (UTC)
 
=== Template for new tasks ===
The following quick copy and paste may be helpful creating new tasks.
<pre><nowiki>== {{header|Icon}} and {{header|Unicon}} ==
== {{header|Icon}} and {{header|Unicon}} ===
This solution also works in Unicon.
<lang Icon>
</lang>
Line 234 ⟶ 380:
 
==== Consistency and Eliminating Duplication ====
 
It's desirable to present all Icon and Unicon code consistently. This discussion was started to help achieve that goal. To that end, there are some objectives:
* Eliminate duplication
Line 251 ⟶ 396:
 
===== Discussion on how this evolved =====
 
: May I suggest creating templates for these various references so that the wording can be adjusted uniformly if the need is felt? (Don't put the <nowiki>==...==</nowiki> in a template, though, because that breaks section editing's ability to pick out the right sections.) Also, insofar as Unicon is ''not'' actually Icon (I don't know either language so I can't judge this), for the second sort of cross-reference, use a header of the form ==[[Icon]]== instead because that will leave it on Icon's unimplemented list for people to work on as an Icon-only example. —[[User:Kevin Reid|Kevin Reid]] 11:22, 11 April 2010 (UTC)
::This is a good idea. I'm still not entirely happy with the way this works. I'd really like to be able to group Unicon and Icon side by side. But without doing something odd with the names the risk is that they would get moved at some point. --[[User:Dgamey|Dgamey]] 17:29, 11 April 2010 (UTC)
::: If the formatting and language/task recognition through <nowiki>{{header|somelanguage}}</nowiki> are separate this suggests a way to group the two languages together in a more satisfying and useful way. I'll post an update later. --[[User:Dgamey|Dgamey]] 02:31, 12 April 2010 (UTC)
:: As far as Unicon and Icon being different. Unicon provides some very significant extensions to Icon. There are also some niceties and syntactic sugar. A very few things behave differently (like random()). Having said that there are also a few things that won't directly move from Icon to Unicon. Probably 99% or more of Icon programs will run unmodified under Unicon. --[[User:Dgamey|Dgamey]] 17:29, 11 April 2010 (UTC)
 
== How to go about solving the tasks ==
 
== Intent .v. Direction of tasks ==
 
There was an interesting discussion on [http://sourceforge.net/mailarchive/forum.php?forum_name=unicon-group the Unicon group forum] about meeting the intent .v. literacy in solving tasks. The [[Loops/Break]] task was used as a point of discussion.
 
The consensus seemed to be that we should be meeting the intent and not reading too much into the literal interpretation of the title. Unless there is specific direction within the task description we should have a free hand.
 
Thanks to Steve, Andrew, Clint, and Charles [http://sourceforge.net/mailarchive/forum.php?thread_name=4BBDFF4D.9000505%40noao.edu&forum_name=unicon-group for this and other discussions]. The overall consensus is that '''we should show our best'''. --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Style ===
 
We should be aiming for programs that are Icon/Unicon like. Not just for translations from something like JavaScript or Basic.
* What should be done with if we find code that looks like a bad translation of something else or even something that could better represent Icon/Unicon. Personally I think they should be replaced with examples that show how the language can be used. There may be a case for keeping them as an alternate version and calling out that it is a bad translation; however, given that this site is about showing off the essence of languages - why would you do that? --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Quality ===
 
There are a number of aspects of the sample programs that need improvement. These include:
 
* Commenting and documentation. Many of the examples (not just Icon/Unicon) have very little in the way of supporting comments, documentation, or description. There really should be a reasonable amount.
* In a couple of cases there are links to IPL modules. Inevitably there will be more. How best to handle these? We could copy the code into a separate code box and call it out - but this could get repetitive. I believe that we should at a minimum place an off site link to the IPL web page for the code. If the library function is the core of the solution (as in [[Input_loop#Icon|Input Loop]] then it should be included. But if the function is less important a reference should be sufficient.
::''I don't see it's necessary to give a copy of the IPL library function. To mention on the language page that the IPL exists and then link to the offsite code where applicable should be enough. Java has a huge standard library that is expected to be present with all implementations, as does C/C++ and many other languages. Task implementations gloss over the possibly hundreds of lines of library code all over Rossetacode, as this would be far too verbose and destroy the ability to make quick comparisons, more so with a large comment block for attribution.'' [[User:MattOates|MattOates]] 07:34, 7 April 2010 (UTC)
::''Fair enough I wasn't sure what the overall convention was here. In this case where the main program does almost nothing and the IPL procedure does all the heavy lifting something more seemed to be needed. Perhaps a note and brief description. Or perhaps just the link.'' --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Multiple Solutions ===
 
What happens when there are multiple good examples of how to solve a task with different approaches? Should we show more than one?
 
By way of example, on the [https://tapestry.tucson.az.us/twiki/bin/view/Main/StateNamesPuzzle | Unicon Twiki - States Names Problem] there are at least two different approaches to the problem. If we were to hit one of those here what to do?
 
Certainly we could talk about or refer to other solutions. But, should we show more than one? My take is that it's not unreasonable to show a couple of good alternate approaches in the same language. Just don't flood the reader. --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
=== Constrained Tasks ===
 
I'm not sure how many of these there may be here. But using the [https://tapestry.tucson.az.us/twiki/bin/view/Main/LongestStringsPuzzle| Unicon Twiki - Find the longest string problem without using comparisons, math, or lists] as an example, perhaps we should introduce a few. I'd like to see how some of the more traditional languages do this :) --[[User:Dgamey|Dgamey]] 21:17, 8 April 2010 (UTC)
 
= Stuff to Do =
 
== Programming Tasks not Implemented ==
These will never end but [[Reports:Tasks_not_implemented_in_Icon|Icon - tasks not_implemented]] and [[Reports:Tasks_not_implemented_in_Unicon|Unicon - tasks not_implemented]] --[[User:Dgamey|Dgamey]] 03:10, 12 April 2010 (UTC)
 
== Easy Wins ==
I expect that many of these tasks are already coded in the Icon Programming Library or one of the Unicon packages. There are also example in the Icon and Unicon books. If you find an interesting task, check these sources first.
 
* [http://www.cs.arizona.edu/icon/library/pdx.htm The IPL permuted index of basic procedures]
* [http://www.cs.arizona.edu/icon/library/gpdx.htm The IPL permuted index of graphic procedures]
 
== Errors/Review Lists ==
 
See [[Template:Example-needs-review]] and [[Template:Incorrect]]. I'm not sure how you're supposed to know what is to be reviewed. Examples I've seen don;t have a lot of explanation.
 
Needs review doesn't seem to take an argument for formatting. Please add a brief note after the tag describing why. You can add more on the discussion/talk page if needed.
 
* Use <nowiki>{{improve|lang|Explanation}}</nowiki> for code improvement such as in
** <nowiki>{{improve|Unicon|The example is correct; however, Unicon implemented additional graphical features and a better example may be possible.}}</nowiki>
* Use <nowiki>{{example-needs-review|lang}}</nowiki> when the code may not meet the task description. Especially after a task description change.
* Use <nowiki>{{incorrect|lang|Explanation}}</nowiki> if the code doesn't meet the task.
 
There are a number of other related templates like improve that can be found [[:Category:Example_attention_templates]].
 
== The IPL and Uni Libraries ==
 
[[:Category:Solutions_by_Library]] need writing. Stubs have been created for:
 
* [[:Category:Icon_Programming_Library|The Icon Programming Library]] --> [http://www.cs.arizona.edu/icon/library/ IPL]
* [[:Category:Unicon_Code_Library|The Unicon Code Library]] --> [https://tapestry.tucson.az.us/unilib Unilib]
 
To reference these pages '''without inclusion''' on the library pages use these:
<pre>[[:Category:Icon_Programming_Library|The Icon Programming Library]]
[[:Category:Unicon_Code_Library|The Unicon Code Library]]</pre>
 
To reference library code and include the task page in the library use the [[Template:Libheader]]
<pre><nowiki>
{{libheader|Icon Programming Library}}
{{libheader|Unicon Code Library}}
</nowiki></pre>
 
Respectively these generate:
<nowiki><noinclude>{{libheader|Icon Programming Library}}</noinclude> and <noinclude>{{libheader|Unicon Code Library}}</noinclude></nowiki>
 
Notes:
* The Wiki automatically replaces spaces with underscores when constructing the link.
* Some pages in the Wiki have a 2nd parameter for libheader; however, it is not used.
 
== Unimplementable tasks ==
 
Mark tasks that aren't doable in Icon/Unicon as such. I believe there is an omit markup in curly braces, but I don't know much about it.
 
See [[:Category:Icon/Omit]] and [[:Category:Unicon/Omit]]
 
The syntax is <nowiki>{{omit from|language}}</nowiki>
 
* An example would be [[Address_of_a_variable|getting/setting the address of a variable]]
* Object oriented stuff in Icon
 
<pre><nowiki>{{omit from|Icon}}{{omit from|Unicon}}</nowiki></pre>
 
== Things to investigate ==
 
Markup or questions seen along the way:
 
* The works with template <nowiki>{{works with|language|version}}</nowiki>
 
== Implementations ==
 
There are Category Pages for Implementations of other languages. There are certainly several variants that can be described for Icon including Jcon, MT Icon, IDOL, etc.
 
== Requesting Tasks ==
 
See [[Rosetta_Code:Village_Pump/Request_a_programming_task]]
 
 
= Stuff Done =
== Language Formatting ==
 
It turns out the <nowiki><lang blahblah></lang></nowiki> tags just provides syntax highlighting via something called GeSHi for syntax highlighting. Although there are Icon and Unicon tags on RC articles, there is GeSHi for either language. The details on AutoGeSHi are at http://rosettacode.org/geshi/ and maintained by user BenBE. (Thanks Mike) --[[User:Dgamey|Dgamey]] 03:10, 12 April 2010 (UTC)
* Thanks to [[User:MattOates|Matt Oates]] for getting these done --[[User:Dgamey|Dgamey]] 02:14, 20 April 2010 (UTC)
 
== Thanks ==
 
* [[User:SteveWampler]] for valuable insight into co-expressions
* [[User:MattOates|Matt Oates]] for work on the syntax coloring templates
* Clint for valuable insight into everything
* Art E, Andrew C
* Anyone else I forgot?
Anonymous user