<?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>Απ: Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74467.aspx</link><pubDate>Fri, 04 Oct 2013 23:19:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74467</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74467.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74467</wfw:commentRss><description>Ευχαριστώ πολύ, παιδιά! Θα ψάξω για όλα αυτά που μου είπατε &lt;img src="http://dotnetzone.gr/cs/emoticons/emotion-21.gif" alt="Yes" /&gt;</description></item><item><title>Απ: Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74465.aspx</link><pubDate>Fri, 04 Oct 2013 17:22:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74465</guid><dc:creator>Markos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74465.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74465</wfw:commentRss><description>Δεν έχω ασχοληθεί με F#, αλλά αν θέλεις function parser έχουν γραφτεί πολλοί σε άλλες γλώσσες του .net (ψάξε στο CodeProject). Φαντάζομαι ότι κάποιος απ' αυτούς θα σε καλύψει. Δεν έχεις παρά να σκεφτείς μία "σύμβαση" βάσει της οποίας θα δηλώνεις τις μεταβλητές σου (π.χ. [%myVariable1%], [%myVariable2%] κ.ο.κ) και να αποθηκεύεις τις συναρτήσεις ως strings. Όταν θελήσεις να τις υπολογίσεις, αντικαθιστάς τις μεταβλητές με τις αριθμητικές τους τιμές, καλείς τον parser και τελείωσες. Αν, τώρα, οι ανάγκες σου είναι διαφορετικές, νομίζω ότι θα βοηθήσει να δώσεις ένα παράδειγμα μιας συνάρτησης.&lt;br&gt;</description></item><item><title>Απ: Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74464.aspx</link><pubDate>Fri, 04 Oct 2013 17:10:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74464</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74464.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74464</wfw:commentRss><description>&lt;p&gt;Αυτό που περιγράφεις λέγεται parsing, όχι scripting ή δυναμικό compiling. Και ένα από τα δυνατά σημεία της F# είναι το parsing . Τόσο το documentation της F# όσο και όλα τα βιβλία και tutorials για F# καλύπτουν σε κάποιο σημείο και πως μπορείς να φτιάξεις το δικό σου parser. Ουσιαστικά αυτό που θέλεις είναι να φτιάξεις ένα .ΝΕΤ expression tree από το κείμενο ενός function. Μπορεί να γίνει και με το χέρι, αλλά καλύτερα να χρησιμοποιήσεις κάποιο parser generator για να δημιουργήσεις τον κώδικα του parser από το συντακτικό που θέλεις.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Η ίδια η F# περιλαμβάνει εργαλεία όπως το fslex και fsyacc για τη δημιουργία parsers.&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; Εναλλακτικά, μπορείς να χρησιμοποιήσεις μία βιβλιοθήκη για parsing όπως η &lt;a href="http://www.quanttec.com/fparsec/"&gt;FParsec&lt;/a&gt; η οποία είναι καθαρά F#. Με αυτή θα έχεις μάλλον πιο γρήγορα αποτελέσματα αλλά δεν θα μπορέσεις να καλύψεις όλες μα όλες τις δυνατότητες του ANTLR. Από την άλλη, το parsing ενός και μόνο function δεν απαιτεί κάτι εξωτικό.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Στα samples του source code θα βρεις και το "κλασσικό" παράδειγμα ενός απλού calculator το οποίο μπορεί να σε βοηθήσει να πάρεις μία ιδέα.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Υπάρχουν βέβαια και πιο "βαριές" λύσεις, όπως&amp;nbsp;&lt;span style="font-size:10pt;"&gt;ο&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a style="font-size:10pt;" href="http://www.antlr.org/"&gt;ANTLR&lt;/a&gt;, ένας από τους πιο διάσημους parser generators&lt;span style="font-size:10pt;"&gt;. Είναι ανεξάρτητο πρόγραμμα, μπορεί να καλύψει σχεδόν οποιαδήποτε γλώσσα αλλά θέλει και το διάβασμα του.&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;ΥΓ: Καλό είναι να ψάξεις μάλιστα μήπως υπάρχουν ήδη parsers για το είδος του function που χρειάζεσαι. Μία αναζήτηση και μόνο για F# math parser γυρίζει άπειρα παραδείγματα&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74463.aspx</link><pubDate>Fri, 04 Oct 2013 16:12:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74463</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74463.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74463</wfw:commentRss><description>&lt;p&gt;Απαντώ στον εαυτό μου :P&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Σκέφτηκα ότι στην ουσία θέλω δυναμικό compiling, οπότε μάλλον δεν είναι τόσο trivial όσο το σκέφτηκα αρχικά!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Θα πάω με τον παραδοσιακό τρόπο και αν εν τω μεταξύ έχει κανείς κάποια ιδέα, καλοδεχούμενη :)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Thx,&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;Θ.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74459.aspx</link><pubDate>Fri, 04 Oct 2013 01:54:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74459</guid><dc:creator>opterios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74459.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74459</wfw:commentRss><description>&lt;p&gt;Έχω σε ένα project της F# μία λίστα συναρτήσεων με signature&lt;br&gt;-------------------------------------------------&lt;br&gt;&lt;span style="font-size:10pt;"&gt;val myFunctionsList : (MyType -&amp;gt; bool) list&lt;br&gt;&lt;/span&gt;-------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Τη λίστα συναρτήσεων αυτή θα την εφαρμόζω ως φίλτρο σε κάποια τιμή τύπου myType και θέλω να ξέρω&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;αυτή η τιμή&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;ποιες από τις συναρτήσεις της λίστας&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;ικανοποιεί&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;. Δηλαδή θα γίνεται κάτι σαν το εξής:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;myFunctionsList&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;|&amp;gt; List.filter (fun f -&amp;gt; f(myValue))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Σήμερα που αναπτύσσεται το project οι συναρτήσεις αυτές είναι περίπου 30 και είναι υλοποιημένες. Το θέμα μου είναι ότι θέλω να εμπλουτίζεται συνεχώς η λίστα αυτή με νέες συναρτήσεις, των οποίων η υλοποίηση δε θα είναι εκ των προτέρων γνωστή. Υπάρχει κάποιος προτεινόμενος τρόπος να προσθέτω συναρτήσεις χωρίς να χρειάζεται να ανεβάζω κάθε φορά έκδοση; Πχ. θα μπορούσα να χρησιμοποιήσω κάποιο script αρχείο όπου να έχω εκεί υλοποιημένες αυτές τις συναρτήσεις, ώστε κάθε φορά που προκύπτει κάποια νέα, να συμπληρώνω στο script απλώς μία ακόμα συνάρτηση;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Δεν έχω δουλέψει ποτέ με scripts (σε κανένα περιβάλλον), γι' αυτό ρωτάω μήπως υπάρχει κάποιος common τρόπος χρήσης τους που αγνοώ. Δ&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;εν έχω ιδέα πώς να το αντιμετωπίσω, αλλά εφόσον η F# διαχειρίζεται τις συναρτήσεις ως...data, υποθέτω πως είναι σχετικά κοινή ανάγκη κάτι τέτοιο κι ελπίζω πως κάποιο τρόπο θα έχει που αγνοώ ;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>