<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71530.aspx</link><pubDate>Sun, 04 Nov 2012 21:42:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71530</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71530.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71530</wfw:commentRss><description>Τα συγκεκριμένα projects αφορούν ένα κύκλο εργασιών που έχω αναλάβει μόνος μου (εκτός δουλειάς), οπότε έχω πλήρη ελευθερία στην αρχιτεκτονική. Ωστόσο, μου φαίνεται και πολύ λογικό αυτό που λες και πιο σωστό, οπότε θα προσπαθήσω να πατώ πάνω σε αυτή τη λογική. Εξάλλου, ποτέ δεν ξέρεις αν θα χρειαστεί να βάλει το χέρι του στο μακρινό μέλλον και κάποιος τρίτος :)&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks!&lt;/div&gt;</description></item><item><title>Απ: Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71528.aspx</link><pubDate>Sun, 04 Nov 2012 20:24:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71528</guid><dc:creator>PALLADIN</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71528.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71528</wfw:commentRss><description>&lt;div&gt;Δεν χρειάζεται να χρησιμοποιείς mutable collections by default.&lt;/div&gt;&lt;div&gt;Απλά φρόντιζε το boundary. Δεν είναι πολύ φιλικό για τους C# programmers να βλέπουν types που δεν τα γνωρίζουν. Το seq είναι type alias για το IEnumerable, οποτε δεν χρειάζεται reference στο FSharp.Core. Απλά στο boundary κανε ένα απλό και σχετικά φτηνό transformation. px [[1]; [1; 2]] |&amp;gt; Seq.map (fun v -&amp;gt; v :&amp;gt; seq&amp;lt;int&amp;gt;). Επίσης καλο είναι στην C# να μην κανεις expose F# modules, καλύτερα φτιάξε ένα class με ένα απλό interface.&lt;/div&gt;</description></item><item><title>Απ: Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71527.aspx</link><pubDate>Sun, 04 Nov 2012 20:05:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71527</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71527.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71527</wfw:commentRss><description>Το FSharp.Core.dll το έκανα ήδη reference, αλλιώς δεν έβλεπε το FSharpList.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Θα χρησιμοποιήσω seq, όπως είπες.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Επειδή γενικώς σκοπεύω να χρησιμοποιήσω αρκετά την F# μέσω της C#, μήπως είναι καλύτερη ιδέα να χρησιμοποιήσω τα System.Collections.Generic από την πλευρά της F# πρώτα; Απλώς δεν ήθελα να χρησιμοποιώ mutable συλλογές στην F# για να μην ξεφύγω πολύ από τον συναρτησιακό προγραμματισμό για...ακαδημαϊκούς λόγους, αλλά αν η πραγματικότητα το απαιτεί, τότε μπορώ να βάλω λίγο νερό στο κρασί μου :P&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ για την απάντηση!&lt;/div&gt;</description></item><item><title>Απ: Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71526.aspx</link><pubDate>Sun, 04 Nov 2012 05:18:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71526</guid><dc:creator>PALLADIN</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71526.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71526</wfw:commentRss><description>Δοκίμασε να βάλεις reference στο FSharp.Core.dll.&lt;div&gt;Γενικά, είναι καλό&amp;nbsp;practice&amp;nbsp;να μην κάνεις expose F# types σε C# projects. Δηλαδή αντι για int list list, καλύτερα είναι seq&amp;lt;seq&amp;lt;int&amp;gt;&amp;gt;.&lt;/div&gt;</description></item><item><title>Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71523.aspx</link><pubDate>Sat, 03 Nov 2012 01:29:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71523</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71523.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71523</wfw:commentRss><description>Καλησπέρα σε όλους.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Έχω φτιάξει στην F# μία συνάρτηση (primesTo x) που επιστρέφει μία λίστα από όλους τους ακέραιους διαιρέτες μίας ακολουθίας αριθμών. Δηλαδή, για είσοδο x θα επιστρέψει μία λίστα διάστασης x, όπου κάθε στοιχείο της λίστας θα περιέχει τους ακέραιους διαιρέτες όλων των ακέραιων από το 1 μέχρι το x. Για παράδειγμα, για είσοδο "10":&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt; primesTo 10;;
val it : &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; list list &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt;
  [[1]; [2; 1]; [3; 1]; [4; 2; 1]; [5; 1]; [6; 3; 2; 1]; [7; 1]; [8; 4; 2; 1];
   [9; 3; 1]; [10; 5; 2; 1]]
&amp;gt; &lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Επίσης, έχω και μία άλλη (divs x) που χρησιμοποιείται από την primesTo, η οποία επιστρέφει μία λίστα από όλους τους ακέραιους διαιρέτες ενός αριθμού (εκτός του εαυτού του). Παράδειγμα:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt; divs 10;;
val it : &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; list &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; [5; 2; 1]
&amp;gt; &lt;/span&gt;&lt;/pre&gt;Τις συναρτήσεις αυτές τις έβαλα σε μία βιβλιοθήκη και θέλω να τις καλέσω από ένα WebForms C# project. Ενώ λοιπόν η κλήση για την divs τρέχει κανονικά, όπως φαίνεται εδώ:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TestFSharp&lt;/span&gt;.divs(&lt;font color="#0000ff"&gt;10&lt;/font&gt;))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.listBox1.Items.Add(i.ToString());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;στην κλήση της primeTo μου χτυπά exception "&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;EntryPointNotFound&lt;/span&gt;".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;System.EntryPointNotFoundException was unhandled&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; HResult=-2146233053&lt;/div&gt;&lt;div&gt;&amp;nbsp; Message=Entry point was not found.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Παραθέτω και τον C# κώδικα που καλεί την primeTo (δοκιμάζω με τιμές τάξεως του 10):&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;innerList&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;();
&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;gt;&amp;nbsp;returnList&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;gt;();
&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span&gt;FSharpList&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;l&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span&gt;&lt;b&gt;&lt;span&gt;TestFSharp&lt;/span&gt;.primesTo(10)&lt;/b&gt;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;nbsp;v&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;l)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;innerList.Add(v);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;returnList.Add(innerList);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;returnList;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Με λίγα λόγια, η primeTo επιστρέφει μία nested FSharpList&amp;lt;FSharpList&amp;lt;int&amp;gt;&amp;gt; που θεωρώ έχει interface IEnumerable (αφού μπορεί και κάνει iteration σε FSharpList). Το πρόβλημα που αντιμετωπίζω είναι επειδή κάνω κάτι λάθος εγώ, ή υπάρχει κάποιος ειδικός χειρισμός στην κλήση nested λιστών έξω από το περιβάλλον της F#;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν θέλετε, να βάλω και τον κώδικα της F#, ωστόσο οι συναρτήσεις στο FSI εκτελούνται κανονικά χωρίς πρόβλημα όπως είδαμε και πιο πάνω, ακόμα και για αριθμούς της τάξεως 10^5, οπότε τον παραλείπω για να μη μεγαλώσει πολύ το post. Το πρόβλημά μου εμφανίζεται αποκλειστικά στην C#.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ εκ των προτέρων.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</description></item></channel></rss>