오류, 진단, 한계
Varlig가 어떤 줄을 계산할 수 없으면 결과 대신 오류를 표시해요. 아래 표에서 메시지를 찾아 흔히 어떤 원인으로 생기는지 확인하세요. 이 페이지에는 Varlig가 인식하지만 지원하지 않는 표기법과, 계산이 너무 커지지 않도록 막는 한계도 정리되어 있어요. 한 줄에 오류가 있어도 메모의 나머지 부분은 계속 작동해요.
아직 입력하는 중인 이름에는 오류가 바로 표시되지 않아요. 공과금을 입력하는 도중의 5 + 공과는 1.5초쯤 입력을 멈추거나 커서를 다른 곳으로 옮길 때까지 기다려요. 그 뒤에도 정의되지 않은 채로 남은 이름은 5 + rent2의 rent2처럼 오류가 되고, 그 안의 숫자로 읽히는 일은 없어요.
오류 메시지
| 메시지 | 의미 | 예 |
|---|---|---|
Error: divide by zero |
정확히 0으로 나눔 | 10 / 0, split £90 among 0 |
Error: division without divisor |
할당하는 값이 웹 주소나 점으로 구분된 이름 뒤에 /가 오는 형태로 보임 |
링크 = example.com/docs |
Error: imaginary number. For a complex answer, write … |
음수의 실수 제곱근이나 로그, 또는 범위를 벗어난 역함수. 메시지에 sqrt(-4 + 0i)처럼 대신 써야 할 복소수 형태가 표시됨 |
sqrt(-4), ln(-1), asin(2) |
Error: incompatible units: can't add km and kg |
단위가 맞지 않거나, 날짜 비교나 [a:b] 슬라이스처럼 값이 연산에 맞지 않음. 메시지에 두 단위가 모두 표시되고, 변환일 때는 can't convert라고 알려 줌 |
2 m + 3 kg, 5 kg in L, [1, 2, 3][0:2] |
Error: unsupported multiplicative unit |
금액이나 질량의 거듭제곱근, 단위가 나누어떨어지지 않는 거듭제곱근, 또는 온도의 곱셈 | sqrt(£4), sqrt(4 m^3), 2 celsius * 3 m |
Error: unsupported exponent operation |
단위 체계로 나타낼 수 없는 거듭제곱 | 2 m ^ 0.5 |
Error: unsupported unit in rate |
환율의 단위가 변환에 맞지 않음 | £100 in EUR at 1.17 EUR/USD |
| 결과 없음 | 표시할 내용이 없음: 완성되지 않은 계산, 정의되지 않은 이름, 또는 정의 줄 | x =, 팁(금액, 비율) = 금액 * 비율 |
Error: ∞ |
숫자 형식으로 나타내기에 너무 크거나 작은 결과, 기간이 0인 대출, 또는 사용할 수 없는 과거 환율 | 10^1000, monthly repayment on £12000 over 0 years at 4% |
Error: missing rate: XXX |
해당 통화의 환율이 없음(예: 환율을 불러오기 전) | 100 USD in EUR |
Error: imprecision due to magnitude |
아주 큰 숫자 옆에서 작은 숫자가 사라짐 | 1e100 + 1 |
Error: overflow |
Varlig가 나타낼 수 있는 범위를 벗어난 날짜나 숫자 | 1 January 2024 + 100000000 years |
Error: calculation limit |
한계 중 하나에 도달함. 뒤집힌 형태인 5 combinations of 2에서도 표시됨 |
range(1, 2000), factorial(100000) |
Unsupported: Unknown name: … |
sum, product, solve, integrate 또는 한 점에서의 미분값 안에 값이 없는 이름이 있음 |
integrate(a*x, x, 0, 1) |
Error: no real solution |
실근이 없는 이차방정식. Varlig는 복소수 근을 내놓는 대신 그렇다고 알려 줌 | solve(x^2 + 1 = 0) |
Unsupported: Expected a square matrix |
행 수와 열 수가 다른 행렬에 det, inverse, trace를 씀 |
det([[1,2,3],[4,5,6]]) |
Unsupported: Singular matrix has no inverse |
행렬식이 0이어서 행들이 서로 독립이 아니고, 역행렬이 없음 | inverse([[1,2],[2,4]]) |
Unsupported: Matrix entries must be plain numbers; … |
행렬 원소에 단위, 금액, 복소수가 있음. 어떤 행렬 연산도 그것들을 지켜 주지 못함 | det([[1 kg,2],[3,4]]) |
Unsupported: No value repeats, so this list has no mode; … |
반복되는 값이 없거나 여러 값이 같은 횟수로 나오는 목록에 mode를 씀. 메시지가 modes, median, average를 알려 줌 |
mode([1,2,3]) |
Unsupported: A variance squares its observations, so it takes plain numbers; … |
단위가 있는 값들의 분산. 답이 제곱된 단위가 되므로 대신 stddev를 쓰기 |
variance([1 kg, 2 kg]) |
Unsupported: A percentile is between 0 and 100 |
범위를 벗어난 percentile 순위 |
percentile([1,2,3,4],101) |
Unsupported: A quartile is 0, 1, 2, 3 or 4 |
범위를 벗어난 quartile |
quartile([1,2,3,4],5) |
Unsupported: unrecognized calculation … |
Varlig가 줄의 일부를 읽을 수 없음. 쉼표가 천 단위를 세 자리씩 구분하지 않는 숫자(쉼표는 절대 소수점으로 쓰이지 않음)이거나, 값이 와야 할 자리에 단어가 있음. 이때는 메시지에 그 단어와 내가 정의한 이름 중 가장 비슷한 것을 함께 알려 줌. 숫자나 밑줄이 들어간 이름도 단어로 치며, 괄호 안, 함수 호출 안, 변환 앞에 있는 이름도 마찬가지 | 12,50, 집세 + £200, rent2 * 12 |
Unsupported: money times money … |
금액끼리 곱함. 일상에서 뜻이 없는 계산이므로 개수나 퍼센트를 곱하기 | $4 * $4 |
Unsupported: a percentage and an amount do not add up … |
기준이 없는 퍼센트. 1.4% + 20p on £2,255나 £31.50 * 4% + 20p처럼 무엇에 적용되는지 밝히기 |
4% + 20p |
Unsupported: at needs a price, a rate or a percentage after an amount |
같은 통화의 금액 두 개 사이에 쓴 at. 그 자체로는 뜻이 없음 |
£500 at £20 |
Unsupported: no amounts above to add up |
같은 구역 안에 더할 값이 하나도 없는 total, sum, average, max, min 줄. 보통 제목이나 --- 구분선 때문에 생김 |
금액 없이 # Groceries 제목 아래에 쓴 total |
Unsupported: conversion to … |
변환 대상이 내가 정의한 이름으로 시작해서 배율인지 단위인지 알 수 없음 | scale = 76.2일 때 15.2 m in scale miles |
Unsupported: an amount and an amount per … do not add up … |
기간이 없는 금액을 기간당 금액에 더함. 두 금액의 기간을 맞추기 | £100 + £50/month |
Unsupported: weeks or days of an amount need its period … |
기간이 정해지지 않은 이름의 금액을 주나 일로 셈 | 집세 = £1,850일 때 5 weeks 집세 |
Unsupported: a distance or weight times … has no everyday meaning |
측정값에 시간을 곱함. 2,500 miles a year * 3 years처럼 기간당 값으로 쓰기 |
2,500 miles * 3 years |
Unsupported: ambiguous commas in … |
괄호 안의 쉼표가 천 단위를 묶는지 값을 나누는지 모호함. 메시지에 두 가지 표기 방법이 모두 표시됨 | max(1,000,2,000), sum(10,100) |
Unsupported: unknown time zone: … |
시간대 변환에 Varlig가 인식하지 못하는 장소나 시간대가 있음 | 3:00 pm London in Narnia |
Error: undefined variable: … |
아직 금액을 담고 있지 않은 이름을 씀. 예를 들어 그 이름을 정의한 줄이 실패한 경우 | 원가 = hello일 때 2 * 원가 |
Error: line2 refers to a deleted line |
줄 참조가 가리키던 줄이 삭제됨. 되돌리면 돌아옴 | 2번 줄을 삭제한 뒤의 line2 * 2 |
Unsupported: line1 has no answer |
제목처럼 아무것도 표시하지 않는 줄을 참조함 | 제목 아래에 쓴 line1 + line2 |
Unsupported: no lines tagged #food above |
같은 구역 안에 그 태그가 달린 줄이 하나도 없는 태그 합계 | 태그를 단 줄 없이 쓴 total of #food |
Unsupported: #4A is no tag: a tag name starts with a letter |
이름이 숫자로 시작하는 태그 합계 | total of #4A |
Unsupported: no amounts on the checklist above |
항목에 가격이 하나도 없는 체크리스트 합계 | 금액이 없는 항목들에 대한 planned |
Error: No note named “…” |
존재하지 않는 메모를 가리키는 use 줄. 보호된 메모, 휴지통에 있는 메모, 순환 참조에는 각각 다른 메시지가 있음 |
그런 메모가 없을 때의 use [[가정값]] |
Unsupported: an inflation projection needs this year or a later one |
지나간 연도를 대상으로 한 물가 상승률 예측 | value of $500 in 2020 at 3% inflation |
Unsupported: unknown unit: … |
숫자 뒤의 단어가 단위가 아닌데 그 값을 변환하거나 날짜에 더함. 철자는 단위 목록에서 확인 | 3 bananas in kg, today + 2 sprints |
Unsupported: unknown ingredient: … |
컵-그램 변환에 밀도를 모르는 재료가 있음. 재료 목록에서 비슷한 재료를 고름 | 1 cup rice in g |
Unsupported: … needs a rate |
퍼센트 없이 세금 이름만 씀. with 20% VAT처럼 세율을 넣거나 설정에서 판매세를 설정 |
£10.50 plus VAT |
Unsupported: dates can't be added |
두 날짜를 +로 연결함. 사이의 기간을 구하려면 빼고, 그렇지 않으면 기간을 더함 |
today + 25 December 2026 |
Unsupported: Function names can't contain spaces |
함수 이름이 여러 단어로 되어 있음. 메시지에서 같은 이름을 밑줄로 이은 형태를 제안함 | 원의 넓이(r) = pi * r^2 |
Unsupported: … has no … |
그 달에 없는 요일이나 날짜라서 날짜를 짐작하지 않음 | fifth monday of February 2025, February 30 2025 |
Unsupported: recurring dates: … |
날짜 하나가 아니라 반복되는 일정. next monday처럼 필요한 날짜를 물어봄 |
every monday, every 2 weeks from 1 October 2026, one a week from 5 October 2026 |
Unsupported: … |
표현 뒤에 붙은 불필요한 단어처럼, Varlig가 인식은 했지만 처리할 수 없는 내용. 메시지에 무엇이 잘못됐는지 표시됨 | split £90 among 2.5 |
지원하지 않는 표기법
어떤 표기법은 수학처럼 보이지만 지원하지 않아요. Varlig는 줄의 일부만 계산해 오해를 부르는 결과를 내는 대신, 구체적인 메시지를 표시해요. 메시지에는 at "±"처럼 문제가 시작되는 기호가 인용돼요.
| 표기법 | 메시지 | 대안 |
|---|---|---|
10 ± 0.5, 10 +/- 0.5 |
Unsupported: Uncertainty notation is not supported at "±" |
양 끝을 따로 계산: 10 - 0.5, 10 + 0.5 |
2d6 |
Unsupported: Dice notation is not supported at "d" |
random(1, 6) + random(1, 6) |
5 < 4 < 10 |
Unsupported: Comparison chains are not supported at "<"; combine separate comparisons with && |
4 < 5 && 5 < 10 |
한계
| 항목 | 한계 |
|---|---|
| 줄과 메모의 크기 | 줄당 64 KiB, 메모당 1 MiB 및 10,000줄 |
| 정확한 분수 | 분자와 분모 각각 최대 4,096비트 |
| 소수 | 계수 최대 2^128−1, 지수 −128부터 127까지 |
range를 포함한 목록 |
항목 1,024개 |
| 행렬 | 행과 열 각각 1개부터 32개까지 |
| 목록 또는 행렬 괄호의 중첩 | 16단계 |
| 카운터에 대한 합 또는 곱 | 항 10,000개 |
| 고급 연산(행렬, 방정식 풀이, 미적분) | 함께 쓰는 100,000단계 |
| 직접 정의한 함수의 매개변수 | 32개 |
| 중첩된 함수 호출 | 16단계, 최상위 호출 하나당 최대 16,384회 호출 |
| 메모 하나에 정의하는 함수 | 1,024개 |
| 수식으로 나타낸 도함수 | 8,192자 |
| 방정식 풀이 | 반복 128회 |
| 적분 | 정밀화 2,048회, 깊이 20단계 |
한계에 도달하면 그 줄에 Error: calculation limit 오류가 표시돼요. 부분적인 결과는 표시되지 않으며, 메모의 나머지 부분은 계속 작동해요. 함수의 한계를 맥락과 함께 보려면 나만의 함수를 참고하세요.