gavr_sas
189 subscribers
2.61K photos
177 videos
24 files
771 links
JB пропаганда
Download Telegram
Внимение!
шоткат замедления ускорения на ютубе это <>
спасибо за внимание

зы никак не относится к замедлению ускорению самого ютуба или перемотке
🔥1
топ дом
🤔1
кек
🔥1
мям
👍1
Haskell
Черепашка на niva
Цель была сделать похоже на другой язык программирования, который на скриншоте справа в комментах

Что здесь интересного
- изи бинд жабы
- для того чтобы сделать круг(квадрат) и вренуться в первую позицию доблы приходится округлять, инчае изза потери точности это невозможно
- repeat реализованный цикл на рекурсии
- билдер создает скоуп с Turtle внутри благодаря чему можно вызывать в этом скоупе методы передвижения forward right...



Bind package: "java.lang" content: [
type Math
constructor Math cos::Double -> Double
constructor Math sin::Double -> Double
constructor Math round::Double -> Int
]
// dsl
Double sin -> Double = Math sin: this
Double cos -> Double = Math cos: this
Double round -> Double = Math round: this |> toDouble
Double roundTo1m -> Double = this round * 1000000.0 / 1000000.0

Int repeat::[Int -> ] = [
this == 0 => ^
repeat Int: this
(this - 1) repeat: repeat
]
// types
enum Color = Red | Green | Blue | Pupple | Black

type Coordinate x: Double y: Double
Double at::Double = Coordinate x: this y: at

type Path color: Color coord: Coordinate
constructor Path new = Path color: Color.Black coord: (0.0 at: 0.0)

type Turtle x: Double y: Double degree: Double path: MutableList::Path c: Color
constructor Turtle new =
Turtle x: 0.0 y: 0.0 degree: 0.0 path: {(Path new)} c: Color.Black

type Pixel v: Double
type Degree v: Double
Double pixels = Pixel v: this
Double degrees = Degree v: this
Double toRadius = this * 0.017453292519943295
Double negate = 0.0 - this


// Main part
extend Turtle [
on forward: p::Pixel = [
v = p v
x <- x + v * degree toRadius cos
y <- y + v * degree toRadius sin
path add: (Path color: c coord: (x roundTo1m at: y roundTo1m))
]
// backward is - forward
on backward: p::Pixel =
this forward: p v negate pixels

on right: d::Degree = [
degree <- (degree + d v) % 360.0
]
// left is - right
on left: d::Degree =
this right: d v negate degrees

on color: color::Color = [c <- color]
]

builder Turtle repeat times::Int -> Turtle = [
t = Turtle new
times repeat: [
build this: t
]
^t
]

turtle = repeat (times: 4) [
.color: Color.Red
.forward: 100.0 pixels
.left: 90.0 degrees
]

turtle path forEach: [
it coord echo
]
ии приз за самую понятный текст ошибки в этом году получает IDEA

Ожидалось 6 байт, получено 0
Видимо для исправления предлагается найти те самые 6 байт


ЗЫ конеш это пробабли название эксепшона из JVM которое прямым текстом попало в вывод ошибки, но все равно смешно
пытаюсь разрабатывать под zed, пока не выходит
[ERROR] failed to start language server "niva": wasm trap: cannot enter component instance

UPD, ааа, он же запускает экстеншоны в васм контейнерах, оттуда нет доступа к файловой системе, надо из PATH все брать, наверн
единственный способ читать логи zed это файл, который разумеется ниче не учитывает
сижу внучную ставлю ентеры после \n\t чтоб понять стек трейс

да, все дело в отсутствии файловой системы, я в LSP читаю собственно файл с кодом
очередной пруф что мы в симмуляции как по мне
просто хочу сказать пишите маленькие приложения под себя на любимых языках

вот написал себе Dela на nim с GTK 20 лет назад, а до сих пор пользуюсь

разбиваешь задачу на супер мелкие подзадачи, делаешь каждой заметки, видишь абстрактные секунды потраченные, тайм манагмент
https://github.com/gavr123456789/Dela?tab=readme-ov-file#init
4👍1
когда вам пишет скаммер натравите на него ллм
😁3
палю страту, заказываете доставку пустой рис с мясом без топингов, а потом сами нарезаете их туда
😁1🥴1