Сплошное расстройство (Nemerle or Racket?)
От: varenikAA  
Дата: 04.10.19 15:14
Оценка:
using System.Console;
WriteLine(0);


  crash
./ncc.exe a8.n
* Assertion at sre-encode.c:290, condition `count > 0' not met


=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================


  Linux
noname@linux:~/Nemerle$ uname -a
Linux linux 5.0.0-29-generic #31~18.04.1-Ubuntu SMP Thu Sep 12 18:29:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

  Mono
noname@linux:~/Nemerle$ mono --version
Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:21:28 UTC 2019)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)


И в тоже время:
Racket
#lang racket

(define (fact ac n)
  (if (= n 1) ac
  (fact (* ac n) (- n 1))))

(fact 1 100)


  Result
Добро пожаловать в DrRacket, версия 6.11 [3m].
Язык: racket, with debugging; memory limit: 128 MB.
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000


В статье ссылка четко оформлена мысль которая витала у меня в голове
последнии дни и оформилась когда я увидел анонс C# 8.

Боже как убого смотрится паттернматчинг( символ => стыдливо скрывает под собой банальный statement(инструкция) return).
Они не осилили блок конструкций в матчинге! И даже нельзя более одного условия использовать в обработчике.
В противовес этому такие языки как Nemerle или Racket представляют собой живое существо построенное из выражений(expression).
Вот чего фатально не хватает C# — выражений! Отсюда и необходимость натирать мозоли на пальцах.
И ожидание в течении нескольких лет такой простой вещи как записи.
Ну почему люди цепляются за старое? Ведь эволюция это единственный путь к улучшению.

Every expression is either a single value or a list.
PS Печально, что поддержка Nemerle так слаба несмотря на такие крутые вещи как Nitra или http://www.ammyui.com/.
При том что в репозитории встречаются документы с грифом права MS. Вероятно у кого-то была мысль заменить C# Nemerle, такая замена прошла бы очень гладко, но кто-то испугался перемен...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.