From mcp2004 at mail.ru Wed Jul 8 06:03:43 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 08 Jul 2015 14:03:43 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= Message-ID: <1436353423.11838170@f309.i.mail.ru> Hi All -- Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html -- ???????????? ?????? From mcp2004 at mail.ru Wed Jul 8 06:39:22 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 08 Jul 2015 14:39:22 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= In-Reply-To: <1436353423.11838170@f309.i.mail.ru> References: <1436353423.11838170@f309.i.mail.ru> Message-ID: <1436355562.264707170@f66.i.mail.ru> Additional quote: "Monads give us a way of dealing with these ?amplified types? and allow us to remove the boiler plate. They can help us write declarative programs where what we are trying to achieve is not obscured by the apparatus we need to achieve it. They help with our core problem as programmers, getting complexity under control so that we can reason effectively about our code." ? From < http://mikehadlow.blogspot.ru/2011/01/monads-in-c2-whats-point.html >? >Wednesday, July 8, 2015 2:03 PM +03:00 from Salakhetdinov Shamil : > > >Hi All -- > >Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? > >See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx > >See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html > >-- >???????????? ?????? >_______________________________________________ >dba-VS mailing list >dba-VS at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/dba-vs >http://www.databaseadvisors.com From gustav at cactus.dk Wed Jul 8 09:35:29 2015 From: gustav at cactus.dk (Gustav Brock) Date: Wed, 8 Jul 2015 14:35:29 +0000 Subject: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Message-ID: Hi Shamil I'm glad you included the last ("or first") link or I would have no idea of what a Monad is and is used. However, I must admit that this does not fill a whole for me - it soon gets messy or at least hard-to-read code, and I prefer clarity above brevity. But who knows? Suddenly you have a situation where Monads could be the optimum tool. Thanks! Learned something new today. /gustav -----Oprindelig meddelelse----- Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil Sendt: 8. juli 2015 13:04 Til: Development in Visual Studio Emne: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Hi All -- Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html -- ???????????? ?????? From mcp2004 at mail.ru Wed Jul 8 10:48:12 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 08 Jul 2015 18:48:12 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= In-Reply-To: References: Message-ID: <1436370492.337005095@f364.i.mail.ru> Hi Gustav -- My pleasure! :) I have almost finished it - reached the 'parsers' part but then I have lost. The author tells it took him more than an year to get through this subject. For me the most important is the following feature of monads: <<< Monads give us a way of dealing with these ?amplified types? and allow us to remove the boiler plate. They can help us write declarative programs where what we are trying to achieve is not obscured by the apparatus we need to achieve it. They help with our core problem as programmers, getting complexity under control so that we can reason effectively about our code. ? From < http://mikehadlow.blogspot.ru/2011/01/monads-in-c2-whats-point.html >? >>> When applied this feature should allow to write (in C#) the following: public string getEmployeeStreetName() { ? ? return employee.getPerson().getAddress().getStreet().Name; } instead of the following: public string getEmployeeStreetName() { ? ? if (employee != null && ? ? ? ? employee.getPerson() != null && ? ? ? ? employee.getPerson().getAddress() != null) ? ? ? ? ? return employee.getPerson().getAddress().getStreet().Name; ? ? return string.Empty; } A very simple use case but you can check your C# to see how much cleaner it will become if you'll apply just one this "trick" provided by monads. But I'm still to find out (in the articles I've referred) how to program this trick. Thank you. -- Shamil >Wednesday, July 8, 2015 2:35 PM UTC from Gustav Brock : > >Hi Shamil > >I'm glad you included the last ("or first") link or I would have no idea of what a Monad is and is used. > >However, I must admit that this does not fill a whole for me - it soon gets messy or at least hard-to-read code, and I prefer clarity above brevity. But who knows? Suddenly you have a situation where Monads could be the optimum tool. > >Thanks! Learned something new today. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 8. juli 2015 13:04 >Til: Development in Visual Studio >Emne: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > > >Hi All -- > >Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? > >See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx > >See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html > >-- >???????????? ?????? > >_______________________________________________ >dba-VS mailing list >dba-VS at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/dba-vs >http://www.databaseadvisors.com From gustav at cactus.dk Wed Jul 8 11:14:49 2015 From: gustav at cactus.dk (Gustav Brock) Date: Wed, 8 Jul 2015 16:14:49 +0000 Subject: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Message-ID: Hi Shamil Yes, I read that Part 6 as well ... and I think I understand what he does but not how. I have a hard time "pictorial doing" it. You probably have to write an example for yourself - like your address/person example - from the ground and up to fully grasp the concept. Often, I think, code as your address/person example would be easier to read and debug than a Monad equivalent. I mean, your "bloated" code you can both read and understand in a split second even though it goes for five lines, not to mention how easy it would be to debug and modify if needed. If I one day should write a Monad, I'll be sure to include a lot of in-line documentation. /gustav -----Oprindelig meddelelse----- Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil Sendt: 8. juli 2015 17:48 Til: Development in Visual Studio Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Hi Gustav -- My pleasure! :) I have almost finished it - reached the 'parsers' part but then I have lost. The author tells it took him more than an year to get through this subject. For me the most important is the following feature of monads: <<< Monads give us a way of dealing with these ?amplified types? and allow us to remove the boiler plate. They can help us write declarative programs where what we are trying to achieve is not obscured by the apparatus we need to achieve it. They help with our core problem as programmers, getting complexity under control so that we can reason effectively about our code. ? >From < http://mikehadlow.blogspot.ru/2011/01/monads-in-c2-whats-point.html >? >>> When applied this feature should allow to write (in C#) the following: public string getEmployeeStreetName() { ? ? return employee.getPerson().getAddress().getStreet().Name; } instead of the following: public string getEmployeeStreetName() { ? ? if (employee != null && ? ? ? ? employee.getPerson() != null && ? ? ? ? employee.getPerson().getAddress() != null) ? ? ? ? ? return employee.getPerson().getAddress().getStreet().Name; ? ? return string.Empty; } A very simple use case but you can check your C# to see how much cleaner it will become if you'll apply just one this "trick" provided by monads. But I'm still to find out (in the articles I've referred) how to program this trick. Thank you. -- Shamil >Wednesday, July 8, 2015 2:35 PM UTC from Gustav Brock : > >Hi Shamil > >I'm glad you included the last ("or first") link or I would have no idea of what a Monad is and is used. > >However, I must admit that this does not fill a whole for me - it soon gets messy or at least hard-to-read code, and I prefer clarity above brevity. But who knows? Suddenly you have a situation where Monads could be the optimum tool. > >Thanks! Learned something new today. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 8. juli 2015 13:04 >Til: Development in Visual Studio >Emne: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > > >Hi All -- > >Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? > >See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx > >See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html > >-- >???????????? ?????? From mcp2004 at mail.ru Wed Jul 8 12:16:26 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 08 Jul 2015 20:16:26 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= In-Reply-To: References: Message-ID: <1436375786.914495477@f118.i.mail.ru> Hi Gustav -- Well, then one should better use assembly language, shouldn't they? :) (I have programmed on IBM 360/370 and PDP 11 macro assemblers for more than ten years - I still think IBM 360/370 macro assembler is the best programming language I've ever used - all the system was in my control:) ) Using "bloated" version wouldn't work, I suppose, if the parts of your "bloated" expression would return IEnumerable and would use? yield return ... to return enumerable values as soon as they are becoming actual... So. it's time to get accustomed to use higher level programming concepts? - without them smooth scaling and (automatic) code execution parallelization wouldn't ?work. -- Shamil >Wednesday, July 8, 2015 4:14 PM UTC from Gustav Brock : > >Hi Shamil > >Yes, I read that Part 6 as well ... and I think I understand what he does but not how. I have a hard time "pictorial doing" it. You probably have to write an example for yourself - like your address/person example - from the ground and up to fully grasp the concept. > >Often, I think, code as your address/person example would be easier to read and debug than a Monad equivalent. I mean, your "bloated" code you can both read and understand in a split second even though it goes for five lines, not to mention how easy it would be to debug and modify if needed. > >If I one day should write a Monad, I'll be sure to include a lot of in-line documentation. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 8. juli 2015 17:48 >Til: Development in Visual Studio >Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > >?Hi Gustav -- > >My pleasure! :) > >I have almost finished it - reached the 'parsers' part but then I have lost. The author tells it took him more than an year to get through this subject. > >For me the most important is the following feature of monads: > ><<< >Monads give us a way of dealing with these ?amplified types? and allow us to remove the boiler plate. They can help us write declarative programs where what we are trying to achieve is not obscured by the apparatus we need to achieve it. They help with our core problem as programmers, getting complexity under control so that we can reason effectively about our code. >? >From < http://mikehadlow.blogspot.ru/2011/01/monads-in-c2-whats-point.html >? >>> > >When applied this feature should allow to write (in C#) the following: > >public string getEmployeeStreetName() >{ >? ? return employee.getPerson().getAddress().getStreet().Name; >} > >instead of the following: >public string getEmployeeStreetName() >{ >? ? if (employee != null && >? ? ? ? employee.getPerson() != null && >? ? ? ? employee.getPerson().getAddress() != null) >? ? ? ? ? return employee.getPerson().getAddress().getStreet().Name; >? ? return string.Empty; >} A very simple use case but you can check your C# to see how much cleaner it will become if you'll apply just one this "trick" provided by monads. > >But I'm still to find out (in the articles I've referred) how to program this trick. > >Thank you. > >-- Shamil > >>Wednesday, July 8, 2015 2:35 PM UTC from Gustav Brock < gustav at cactus.dk >: >> >>Hi Shamil >> >>I'm glad you included the last ("or first") link or I would have no idea of what a Monad is and is used. >> >>However, I must admit that this does not fill a whole for me - it soon gets messy or at least hard-to-read code, and I prefer clarity above brevity. But who knows? Suddenly you have a situation where Monads could be the optimum tool. >> >>Thanks! Learned something new today. >> >>/gustav >> >>-----Oprindelig meddelelse----- >>Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >>Sendt: 8. juli 2015 13:04 >>Til: Development in Visual Studio >>Emne: [dba-VS] C#, monads - must read - don't get mad with them while reading :) >> >> >>Hi All -- >> >>Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? >> >>See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx >> >>See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html >> >>-- >>???????????? ?????? > >_______________________________________________ >dba-VS mailing list >dba-VS at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/dba-vs >http://www.databaseadvisors.com From gustav at cactus.dk Thu Jul 9 11:46:59 2015 From: gustav at cactus.dk (Gustav Brock) Date: Thu, 9 Jul 2015 16:46:59 +0000 Subject: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Message-ID: Hi Shamil Uh, moving to assembly would be to exaggerate well beyond readability! I never did much in that area except for some small keyboard utilities programmed with Debug(?). I managed to get hold of the original Microsoft Assembly linker/compiler (in the plastic box with the manual) but I never used it. But, as you do, the author mentioned IEnumerable as a real-life example of a Monad, and that is a good example because how to live without that? So I think - to make sense - Monad should be though of for a more complicated scenarios - not very simple ones as in his tutorial. /gustav -----Oprindelig meddelelse----- Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil Sendt: 8. juli 2015 19:16 Til: Development in Visual Studio Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Hi Gustav -- Well, then one should better use assembly language, shouldn't they? :) (I have programmed on IBM 360/370 and PDP 11 macro assemblers for more than ten years - I still think IBM 360/370 macro assembler is the best programming language I've ever used - all the system was in my control:) ) Using "bloated" version wouldn't work, I suppose, if the parts of your "bloated" expression would return IEnumerable and would use? yield return ... to return enumerable values as soon as they are becoming actual... So. it's time to get accustomed to use higher level programming concepts? - without them smooth scaling and (automatic) code execution parallelization wouldn't ?work. -- Shamil >Wednesday, July 8, 2015 4:14 PM UTC from Gustav Brock : > >Hi Shamil > >Yes, I read that Part 6 as well ... and I think I understand what he does but not how. I have a hard time "pictorial doing" it. You probably have to write an example for yourself - like your address/person example - from the ground and up to fully grasp the concept. > >Often, I think, code as your address/person example would be easier to read and debug than a Monad equivalent. I mean, your "bloated" code you can both read and understand in a split second even though it goes for five lines, not to mention how easy it would be to debug and modify if needed. > >If I one day should write a Monad, I'll be sure to include a lot of in-line documentation. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 8. juli 2015 17:48 >Til: Development in Visual Studio >Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > >?Hi Gustav -- > >My pleasure! :) > >I have almost finished it - reached the 'parsers' part but then I have lost. The author tells it took him more than an year to get through this subject. > >For me the most important is the following feature of monads: > ><<< >Monads give us a way of dealing with these ?amplified types? and allow us to remove the boiler plate. They can help us write declarative programs where what we are trying to achieve is not obscured by the apparatus we need to achieve it. They help with our core problem as programmers, getting complexity under control so that we can reason effectively about our code. >? >From < http://mikehadlow.blogspot.ru/2011/01/monads-in-c2-whats-point.html >? >>> > >When applied this feature should allow to write (in C#) the following: > >public string getEmployeeStreetName() >{ >? ? return employee.getPerson().getAddress().getStreet().Name; >} > >instead of the following: >public string getEmployeeStreetName() >{ >? ? if (employee != null && >? ? ? ? employee.getPerson() != null && >? ? ? ? employee.getPerson().getAddress() != null) >? ? ? ? ? return employee.getPerson().getAddress().getStreet().Name; >? ? return string.Empty; >} A very simple use case but you can check your C# to see how much cleaner it will become if you'll apply just one this "trick" provided by monads. > >But I'm still to find out (in the articles I've referred) how to program this trick. > >Thank you. > >-- Shamil > >>Wednesday, July 8, 2015 2:35 PM UTC from Gustav Brock < gustav at cactus.dk >: >> >>Hi Shamil >> >>I'm glad you included the last ("or first") link or I would have no idea of what a Monad is and is used. >> >>However, I must admit that this does not fill a whole for me - it soon gets messy or at least hard-to-read code, and I prefer clarity above brevity. But who knows? Suddenly you have a situation where Monads could be the optimum tool. >> >>Thanks! Learned something new today. >> >>/gustav >> >>-----Oprindelig meddelelse----- >>Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >>Sendt: 8. juli 2015 13:04 >>Til: Development in Visual Studio >>Emne: [dba-VS] C#, monads - must read - don't get mad with them while reading :) >> >> >>Hi All -- >> >>Must read:? http://ericlippert.com/2013/02/21/monads-part-one/ ?- ... -? http://ericlippert.com/2013/04/03/monads-part-thirteen/ ? >> >>See also:?http://blogs.msdn.com/b/pfxteam/archive/2013/04/03/tasks-monads-and-linq.aspx >> >>See also (or first):? http://mikehadlow.blogspot.ru/2011/01/monads-in-c1-introduction.html >> >>-- >>???????????? ?????? From mcp2004 at mail.ru Thu Jul 9 16:39:02 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Fri, 10 Jul 2015 00:39:02 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= In-Reply-To: References: Message-ID: <1436477942.907223263@f407.i.mail.ru> Hi Gustav -- I meant *macro* assembler - it's an assembler with a very power preprocessor, especially IBM 360/370 macro assembler: a long ago one of the things I managed to write using this macro assembler was ?a macro "mimicking" PL/I formatted output/print command/statement something like C#'s String.format(...) / Console.Writeline (...) - all in one one macro - while it's preprocessed into assembly language machine ?commands calls/subroutine calls it can do very high level parsing of its operands/parameters - that should have been a second order monad I guess :)? >??Monad should be though of for a more complicated scenarios They mentioned simple forach (....) or for (int i = 0; ...) which could be also refactored/streamlined using monads: I'm reading "Monads, part three" ( http://ericlippert.com/2013/02/28/monads-part-three/ ) and I'm planning to continue reading this blogposts series - hope I will have something more to tell on the subject. I have also a (currently) by-side but challenging project where I have already used LINQ expressions and predicates (https://www.simple-talk.com/dotnet/.net-framework/giving-clarity-to-linq-queries-by-extending-expressions/) and where LINQ expression trees will be also probably used. I cannot say I understand all these techniques in details but at least I have found how to apply them to a real life project one of my customers having been planned to implement for ten+ years for now - and nowadays their "dreams" should come true in a couple of months - thanks to LINQ. LINQ predicates and expression trees - and monads also I guess: without all these modern programming techniques the project would require a lot of custom programming if could have been done at all... Thank you. -- Shamil >Thursday, July 9, 2015 4:46 PM UTC from Gustav Brock : > >Hi Shamil > >Uh, moving to assembly would be to exaggerate well beyond readability! I never did much in that area except for some small keyboard utilities programmed with Debug(?). I managed to get hold of the original Microsoft Assembly linker/compiler (in the plastic box with the manual) but I never used it. > >But, as you do, the author mentioned IEnumerable as a real-life example of a Monad, and that is a good example because how to live without that? So I think - to make sense - Monad should be though of for a more complicated scenarios - not very simple ones as in his tutorial. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 8. juli 2015 19:16 >Til: Development in Visual Studio >Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > >?Hi Gustav -- > >Well, then one should better use assembly language, shouldn't they? :) (I have programmed on IBM 360/370 and PDP 11 macro assemblers for more than ten years - I still think IBM 360/370 macro assembler is the best programming language I've ever used - all the system was in my control:) ) > >Using "bloated" version wouldn't work, I suppose, if the parts of your "bloated" expression would return IEnumerable and would use? > >yield return ... > >to return enumerable values as soon as they are becoming actual... > >So. it's time to get accustomed to use higher level programming concepts? - without them smooth scaling and (automatic) code execution parallelization wouldn't ?work. > >-- Shamil <<< skipped >>> > From gustav at cactus.dk Fri Jul 10 11:23:16 2015 From: gustav at cactus.dk (Gustav Brock) Date: Fri, 10 Jul 2015 16:23:16 +0000 Subject: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Message-ID: Hi Shamil Ah, I misunderstood, I have never worked with a macro assembler. The closest I ever got to a mainframe was at the technical university where we programmed in Algol (on punch cards). It must have been the IBM 360 as I recall the 370 to be introduced later during summer 1970 (I attended the International Executive Briefing at the IBM headquarters at Liding? just outside Stockholm as a conference engineer handling the wireless interpretation equipment). Sounds like an interesting side project of yours. I'll see if I can work my way through Eric Lipperts tutorial to get some better understanding. As I read somewhere: If you don't know both the basics and the perspective, you won't see where you could apply it. For example, when so many mock around with SqlCommand, I can only guess it's because they don't know about neither DataTableAdapters nor the Entity Framework. /gustav -----Oprindelig meddelelse----- Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil Sendt: 9. juli 2015 23:39 Til: Development in Visual Studio Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) Hi Gustav -- I meant *macro* assembler - it's an assembler with a very power preprocessor, especially IBM 360/370 macro assembler: a long ago one of the things I managed to write using this macro assembler was ?a macro "mimicking" PL/I formatted output/print command/statement something like C#'s String.format(...) / Console.Writeline (...) - all in one one macro - while it's preprocessed into assembly language machine ?commands calls/subroutine calls it can do very high level parsing of its operands/parameters - that should have been a second order monad I guess :)? >??Monad should be though of for a more complicated scenarios They mentioned simple forach (....) or for (int i = 0; ...) which could be also refactored/streamlined using monads: I'm reading "Monads, part three" ( http://ericlippert.com/2013/02/28/monads-part-three/ ) and I'm planning to continue reading this blogposts series - hope I will have something more to tell on the subject. I have also a (currently) by-side but challenging project where I have already used LINQ expressions and predicates (https://www.simple-talk.com/dotnet/.net-framework/giving-clarity-to-linq-queries-by-extending-expressions/) and where LINQ expression trees will be also probably used. I cannot say I understand all these techniques in details but at least I have found how to apply them to a real life project one of my customers having been planned to implement for ten+ years for now - and nowadays their "dreams" should come true in a couple of months - thanks to LINQ. LINQ predicates and expression trees - and monads also I guess: without all these modern programming techniques the project would require a lot of custom programming if could have been done at all... Thank you. -- Shamil From mcp2004 at mail.ru Fri Jul 10 14:39:27 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Fri, 10 Jul 2015 22:39:27 +0300 Subject: [dba-VS] =?utf-8?q?C=23=2C_monads_-_must_read_-_don=27t_get_mad_w?= =?utf-8?q?ith_them_while_reading_=3A=29?= In-Reply-To: References: Message-ID: <1436557167.708559362@f368.i.mail.ru> Hi Gustav -- I programmed on Algol on blackboard/paper only while in technical college. It was English (original) version of Algol. There were here also Russian versions of Algol and Cobol ?and Fortran and even RPG, not sure about PL/I - the Russian versions of Algol and Cobol were funny :) , it may happen we'll get them or something like that back as Russian officials are currently promoting local software products, - and programming languages may follow... SqlCommand is for real database-centered apps development, you know :) - similar to raw HTML(5)/CSS(3)/Javascript(/no any Coffee-/Type-Script - they are evil) ?are for real web apps development :) Yes, side project is interesting, it's under commercial NDA now, when released hopefully this fall then it should be possible to tell more about it: it's for local application market, but the knowledge/some parts of its software can be reused for more general purposes - if that application will happen to be developed I'll get you all here informed. Thank you. -- Shamil >Friday, July 10, 2015 4:23 PM UTC from Gustav Brock : > >Hi Shamil > >Ah, I misunderstood, I have never worked with a macro assembler. The closest I ever got to a mainframe was at the technical university where we programmed in Algol (on punch cards). It must have been the IBM 360 as I recall the 370 to be introduced later during summer 1970 (I attended the International Executive Briefing at the IBM headquarters at Liding? just outside Stockholm as a conference engineer handling the wireless interpretation equipment). > >Sounds like an interesting side project of yours. I'll see if I can work my way through Eric Lipperts tutorial to get some better understanding. As I read somewhere: If you don't know both the basics and the perspective, you won't see where you could apply it. For example, when so many mock around with SqlCommand, I can only guess it's because they don't know about neither DataTableAdapters nor the Entity Framework. > >/gustav > >-----Oprindelig meddelelse----- >Fra: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] P? vegne af Salakhetdinov Shamil >Sendt: 9. juli 2015 23:39 >Til: Development in Visual Studio >Emne: Re: [dba-VS] C#, monads - must read - don't get mad with them while reading :) > >?Hi Gustav -- > >I meant *macro* assembler - it's an assembler with a very power preprocessor, especially IBM 360/370 macro assembler: a long ago one of the things I managed to write using this macro assembler was ?a macro "mimicking" PL/I formatted output/print command/statement something like C#'s String.format(...) / Console.Writeline (...) - all in one one macro - while it's preprocessed into assembly language machine ?commands calls/subroutine calls it can do very high level parsing of its operands/parameters - that should have been a second order monad I guess :)? > >>??Monad should be though of for a more complicated scenarios >They mentioned simple > >forach (....) > >or > >for (int i = 0; ...) > >which could be also refactored/streamlined using monads: I'm reading "Monads, part three" ( http://ericlippert.com/2013/02/28/monads-part-three/ ) and I'm planning to continue reading this blogposts series - hope I will have something more to tell on the subject. > >I have also a (currently) by-side but challenging project where I have already used LINQ expressions and predicates ( https://www.simple-talk.com/dotnet/.net-framework/giving-clarity-to-linq-queries-by-extending-expressions/ ) and where LINQ expression trees will be also probably used. I cannot say I understand all these techniques in details but at least I have found how to apply them to a real life project one of my customers having been planned to implement for ten+ years for now - and nowadays their "dreams" should come true in a couple of months - thanks to LINQ. LINQ predicates and expression trees - and monads also I guess: without all these modern programming techniques the project would require a lot of custom programming if could have been done at all... > >Thank you. > >-- Shamil > >_______________________________________________ >dba-VS mailing list >dba-VS at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/dba-vs >http://www.databaseadvisors.com From mcp2004 at mail.ru Thu Jul 30 09:53:32 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 30 Jul 2015 17:53:32 +0300 Subject: [dba-VS] =?utf-8?q?Combining_multiple_=2ENET_Framework_DLLs_with_?= =?utf-8?q?a_head_EXE_app_into_a_composite_EXE=2E?= Message-ID: <1438268012.406436885@f387.i.mail.ru> Hi All -- Have anybody tried to combine multiple .NET Framework DLLs with a head Exe app into a composite EXE with embedded DLLs, e.g. as proposed here? http://tinyurl.com/paksq7d ?? I have tried the above approach one time and it didn't work for me, have you? Thank you. -- ???????????? ?????? From gustav at cactus.dk Thu Jul 30 11:16:12 2015 From: gustav at cactus.dk (Gustav Brock) Date: Thu, 30 Jul 2015 16:16:12 +0000 Subject: [dba-VS] Combining multiple .NET Framework DLLs with a head EXE app into a composite EXE. In-Reply-To: <1438268012.406436885@f387.i.mail.ru> References: <1438268012.406436885@f387.i.mail.ru> Message-ID: Hi Shamil Not me. Seems like an interesting approach for easier deployment. /gustav ________________________________________ Fra: dba-VS p? vegne af Salakhetdinov Shamil Sendt: 30. juli 2015 16:53 Til: Development in Visual Studio Emne: [dba-VS] Combining multiple .NET Framework DLLs with a head EXE app into a composite EXE. Hi All -- Have anybody tried to combine multiple .NET Framework DLLs with a head Exe app into a composite EXE with embedded DLLs, e.g. as proposed here http://tinyurl.com/paksq7d ? I have tried the above approach one time and it didn't work for me, have you? Thank you. -- ???????????? ?????? From mcp2004 at mail.ru Thu Jul 30 11:54:40 2015 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 30 Jul 2015 19:54:40 +0300 Subject: [dba-VS] =?utf-8?q?Combining_multiple_=2ENET_Framework_DLLs_with_?= =?utf-8?q?a_head_EXE_app_into_a_composite_EXE=2E?= In-Reply-To: References: <1438268012.406436885@f387.i.mail.ru> Message-ID: <1438275280.731074703@f220.i.mail.ru> Hi Gustav -- Thank you for your comment. If I'll find time to make it working for me I will post a full code/transcript here: if anybody knows of of such a ready to use code/transcript I'd better borrow it ASAP :) -- Shamil >Thursday, July 30, 2015 4:16 PM UTC from Gustav Brock : > >Hi Shamil > >Not me. >Seems like an interesting approach for easier deployment. > >/gustav > >________________________________________ >Fra: dba-VS < dba-vs-bounces at databaseadvisors.com > p? vegne af Salakhetdinov Shamil < mcp2004 at mail.ru > >Sendt: 30. juli 2015 16:53 >Til: Development in Visual Studio >Emne: [dba-VS] Combining multiple .NET Framework DLLs with a head EXE app into a composite EXE. > >?Hi All -- > >Have anybody tried to combine multiple .NET Framework DLLs with a head Exe app into a composite EXE with embedded DLLs, e.g. as proposed here http://tinyurl.com/paksq7d ? > >I have tried the above approach one time and it didn't work for me, have you? > >Thank you. > > >-- >???????????? ?????? > >_______________________________________________ >dba-VS mailing list >dba-VS at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/dba-vs >http://www.databaseadvisors.com